RTN转换(自用)

将J2000惯性系下的坐标转换到RTN卫星坐标系下

public class RTN {
    //RTN转换矩阵
    static double[][] rtnRot(final double[] p, final double[] v) {
        double[][] r = new double[3][3];
        r[0][0] = p[0] / sqrt(pow(p[0], 2) + pow(p[1], 2) + pow(p[2], 2));
        r[0][1] = p[1] / sqrt(pow(p[0], 2) + pow(p[1], 2) + pow(p[2], 2));
        r[0][2] = p[2] / sqrt(pow(p[0], 2) + pow(p[1], 2) + pow(p[2], 2));
        r[2][0] = (p[1] * v[2] - v[1] * p[2]) / sqrt(pow((p[1] * v[2] - v[1] * p[2]), 2) + pow((p[2] * v[0] - p[0] * v[2]), 2) + pow((p[0] * v[1] - v[0] * p[1]), 2));
        r[2][1] = (p[2] * v[0] - p[0] * v[2]) / sqrt(pow((p[1] * v[2] - v[1] * p[2]), 2) + pow((p[2] * v[0] - p[0] * v[2]), 2) + pow((p[0] * v[1] - v[0] * p[1]), 2));
        r[2][2] = (p[0] * v[1] - v[0] * p[1]) / sqrt(pow((p[1] * v[2] - v[1] * p[2]), 2) + pow((p[2] * v[0] - p[0] * v[2]), 2) + pow((p[0] * v[1] - v[0] * p[1]), 2));
        r[1][0] = -1.0 * (r[2][2] * r[0][1] - r[0][2] * r[2][1]);
        r[1][1] = -1.0 * (r[2][0] * r[0][2] - r[0][0] * r[2][2]);
        r[1][2] = -1.0 * (r[2][1] * r[0][0] - r[0][1] * r[2][0]);
        return r;
    }
    //XYZ转RTN
    static double[] rtn(final double[][] r, final double[] dp){
        double[] RTN = new double[3];
        RTN[0] = r[0][0]*dp[0]+r[0][1]*dp[1]+r[0][2]*dp[2];
        RTN[1] = r[1][0]*dp[0]+r[1][1]*dp[1]+r[1][2]*dp[2];
        RTN[2] = r[2][0]*dp[0]+r[2][1]*dp[1]+r[2][2]*dp[2];
        return RTN;
    }
    //坐标差
    static double[] dis(final double x1, final double y1,final double z1,final double x2, final double y2,final double z2){
        double[] dp = new double[3];
        dp[0] = x1-x2;
        dp[1] = y1-y2;
        dp[2] = z1-z2;
        return dp;
    }

}

  • 4
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 6
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值