【问题标题】:How to convert z coordinate to an angle in c#?如何在c#中将z坐标转换为角度?
【发布时间】:2015-10-12 02:22:20
【问题描述】:

我已经在网上搜索了几个小时以将 z 轴坐标转换为角度。我已经有了 x,y 的角度,现在要完成它我需要 z。这是 x,y 的代码:

        private float XYToDegrees(Point xy, Point origin)
    {
        int deltaX = origin.X - xy.X;
        int deltaY = origin.Y - xy.Y;

        double radAngle = Math.Atan2(deltaY, deltaX);
        double degreeAngle = radAngle * 180.0 / Math.PI;

        return (float)(180.0 - degreeAngle);
    }

以及运行函数的代码:

XYToDegrees(new Point(2334, -447), new Point(2433, -659)) - 270;

z 坐标转角的目的是让相机的角度与 我正在查看的对象。

【问题讨论】:

  • 你知道将z转换为笛卡尔以外坐标的数学函数吗?你知道你是想去极地还是圆柱体?
  • 大多数 3d 引擎和环境都有camera.LookAt(obj) 功能。如果你有一个,你可以查找LookAt 方法的算法并实现它。不要重新发明轴。

标签: c# vector angle degrees


【解决方案1】:

很相似,只是另一个三角形

private float XYZToDegrees(double deltaX, double deltaY, double deltaZ)
{
    double deltaXY = Math.Sqrt(deltaY * deltaY + deltaX * deltaX);
    double radAngle = Math.Atan2(deltaZ, deltaXY);
    double degreeAngle = radAngle * 180.0 / Math.PI;

    return (float)degreeAngle;
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-04-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-09-30
    • 2021-04-19
    • 2020-11-27
    相关资源
    最近更新 更多