public class LofOffset extends Object implements AttitudeProvider
姿态提供者被定义为相对于某个本地轨道坐标系的旋转偏移。
Constructor and Description |
---|
LofOffset(Frame inertialFrame, LOF lof)
创建一个与LOF对齐的姿态。
|
LofOffset(Frame inertialFrame, LOF lof, org.hipparchus.geometry.euclidean.threed.RotationOrder order, double alpha1, double alpha2, double alpha3)
创建新实例。
|
Modifier and Type | Method and Description |
---|---|
<T extends org.hipparchus.CalculusFieldElement<T>> |
getAttitude(FieldPVCoordinatesProvider<T> pvProv, FieldAbsoluteDate<T> date, Frame frame)
计算与轨道状态对应的姿态。
|
Attitude |
getAttitude(PVCoordinatesProvider pvProv, AbsoluteDate date, Frame frame)
计算与轨道状态对应的姿态。
|
<T extends org.hipparchus.CalculusFieldElement<T>> |
getAttitudeRotation(FieldPVCoordinatesProvider<T> pvProv, FieldAbsoluteDate<T> date, Frame frame)
计算与轨道状态对应的与姿态相关的旋转。
|
org.hipparchus.geometry.euclidean.threed.Rotation |
getAttitudeRotation(PVCoordinatesProvider pvProv, AbsoluteDate date, Frame frame)
计算与轨道状态对应的与姿态相关的旋转。
|
public LofOffset(Frame inertialFrame, LOF lof)
调用此构造函数等同于调用LofOffset(inertialFrame, LOF, RotationOrder.XYZ, 0, 0, 0)
inertialFrame
- 惯性参考系,用于计算轨道
lof
- 本地轨道坐标系
public LofOffset(Frame inertialFrame, LOF lof, org.hipparchus.geometry.euclidean.threed.RotationOrder order, double alpha1, double alpha2, double alpha3)
需要注意的一点是,这里使用的旋转顺序和角度符号符合姿态定义,即它们对应于在固定向量场中旋转的坐标系。因此,要从Hipparchus底层旋转中检索这里提供的角度,必须使用RotationConvention.VECTOR_OPERATOR
并反转旋转,或者像以下代码片段中使用RotationConvention.FRAME_TRANSFORM
:
LofOffset law = new LofOffset(inertial, LOF, order, alpha1, alpha2, alpha3); Rotation offsetAtt = law.getAttitude(orbit).getRotation(); Rotation alignedAtt = new LofOffset(inertial, LOF).getAttitude(orbit).getRotation(); Rotation offsetProper = offsetAtt.compose(alignedAtt.revert(), RotationConvention.VECTOR_OPERATOR); // 注意调用revert和以下语句中的约定 double[] anglesV = offsetProper.revert().getAngles(order, RotationConvention.VECTOR_OPERATOR); System.out.format(Locale.US, "%f == %f%n", alpha1, anglesV[0]); System.out.format(Locale.US, "%f == %f%n", alpha2, anglesV[1]); System.out.format(Locale.US, "%f == %f%n", alpha3, anglesV[2]); // 注意以下语句中的约定 double[] anglesF = offsetProper.getAngles(order, RotationConvention.FRAME_TRANSFORM); System.out.format(Locale.US, "%f == %f%n", alpha1, anglesF[0]); System.out.format(Locale.US, "%f == %f%n", alpha2, anglesF[1]); System.out.format(Locale.US, "%f == %f%n", alpha3, anglesF[2]);
inertialFrame
- 惯性参考系,用于计算轨道
lof
- 本地轨道坐标系
order
- 用于(alpha1, alpha2, alpha3)组合的旋转顺序
alpha1
- 第一个基本旋转的角度
alpha2
- 第二个基本旋转的角度
alpha3
- 第三个基本旋转的角度
public Attitude getAttitude(PVCoordinatesProvider pvProv, AbsoluteDate date, Frame frame)
getAttitude
在接口 AttitudeProvider
pvProv
- 当前日期周围的本地位置-速度提供者
date
- 当前日期
frame
- 计算姿态的参考坐标系
public <T extends org.hipparchus.CalculusFieldElement<T>> FieldAttitude<T> getAttitude(FieldPVCoordinatesProvider<T> pvProv, FieldAbsoluteDate<T> date, Frame frame)
getAttitude
在接口 AttitudeProvider
T
- 字段元素的类型
pvProv
- 当前日期周围的本地位置-速度提供者
date
- 当前日期
frame
- 计算姿态的参考坐标系
public org.hipparchus.geometry.euclidean.threed.Rotation getAttitudeRotation(PVCoordinatesProvider pvProv, AbsoluteDate date, Frame frame)
getAttitudeRotation
在接口 AttitudeProvider
pvProv
- 当前日期周围的本地位置-速度提供者
date
- 当前日期
frame
- 计算姿态的参考坐标系
public <T extends org.hipparchus.CalculusFieldElement<T>> org.hipparchus.geometry.euclidean.threed.FieldRotation<T> getAttitudeRotation(FieldPVCoordinatesProvider<T> pvProv, FieldAbsoluteDate<T> date, Frame frame)
getAttitudeRotation
在接口 AttitudeProvider
T
- 字段元素的类型
pvProv
- 当前日期周围的本地位置-速度提供者
date
- 当前日期
frame
- 计算姿态的参考坐标系
Copyright © 2002-2023 CS GROUP. All rights reserved.