首页 文章

根据角度和距离在空间中找到2D点

提问于
浏览
1

好的....所以我做了一个快速图表来解释我希望完成的事情 . 可悲的是数学不是我的强项,我希望你们中的一个巫师可以给我正确的公式:)这是一个c程序,但我真的在寻找公式而不是c代码 .

Diagram

好的,现在基本上,红色圆圈是我们的0点,我站在那里 . 我们上面的蓝色圆圈是300个单位,我认为它是0度的角度 . 我想知道,我如何使用我选择的角度以及我选择的某个距离找到此图表中的点的x,y .

我想知道如何找到绿色圆圈的x,y,即225度和500个单位 .

所以我假设我必须想办法在所有点上转移距离0,000个单位的圆,而不是根据我想要的角度在该圆上选取一个位置?但是不知道从那里去哪里 .

2 回答

  • 2

    平面上的点可以用两个主要的数学表示来表示,即笛卡尔坐标(因此 x,y )和极坐标:使用距离中心的距离和角度 . 通常 r 和希腊字母,但让我们使用 w .

    定义

    在常见约定下,r是从中心(0,0)到您的点的距离,并且角度是逆时针测量的(对于正值,顺时针测量为负),0是右侧的水平 .

    备注

    请注意极坐标表示中的角度:

    • 个角度也可以用弧度表示,π与180°的角度相同,因此π/ 2 90°等等 . π= 3.14(约)由2π=半径为1的圆的周长定义 .

    • 个角度可以用一个整圆表示 . 整圆为2π或360°,因此90°与-270°相同,180°和-180°相同,以及3π/ 4和-5π/4,2π和0,360°您可以考虑[-π,π](即[-180,180])或[0,2π](即[0,360])之间的角度,或者根本不约束它们,无关紧要 .

    • 当你的点在中心(r = 0)时,角度w没有真正定义 .

    根据定义,

    • r始终为正数 . 如果r为负数,则可以更改其符号并添加半圈(π或180°)以获取同一点的坐标 .

    图表上的点数

    • red:x = 0,y = 0或r = 0 w =任意值

    • 蓝色:x = 0,y = 300或r = 300且w = 90°

    • 绿色:x = -400,y = -400或r = -565且w = 225°(近似值,我没有做实际测量)

    请注意,对于蓝点,您可以使用w = -270°,对于绿色w = -135°等 .

    从一个表示到另一个表示

    最后,您需要在表示之间来回切换三角公式 . 更容易的转变是从极地到笛卡儿:

    x=r*cos(w)
    y=r*sin(w)
    

    由于cos²sin²= 1,毕达哥拉斯等,你可以看到 x² + y² = r²cos²(w) + r²sin²(w) = r² ,因此得到r,使用:

    r=sqrt(x²+y²)
    

    最后得到角度,我们使用 cos/sin = tan ,其中tan是另一个三角函数 . 从 y/x = r sin(w) / (r cos(w)) = tan(w) ,你得到:

    w = arctan(y/x) [mod π]
    

    tan是函数的模数π,而不是2π . arctan只是表示函数tan的反函数,有时写成tan ^ -1或atan .

    通过反转切线,您得到-π/ 2和π/ 2(或-90°和90°)之间的结果:您最终需要将π添加到结果中 . 这是针对[π/ 2,π]和[-π,π/ 2]([90,180]和[-180,-90])之间的角度进行的 . 这些值由cos的符号表征:因为 x = r cos(w) 你知道x在所有这些角度都是负的 . 尝试查看这些角度在图表上的位置,这非常简单 . 因此:

    w = arctan(y/x) + (π if x < 0)
    

    最后,如果它是0,你不能除以x . 在那个角落的情况下,你有

    • 如果y> 0, w = π/2

    • 如果y <0, w = -π/2

  • 2

    似乎是给定极坐标,你想从中获得笛卡尔坐标 . 这是一些简单的数学,应该很容易做到 .

    将极坐标(r,O)转换为笛卡尔坐标(x,y)坐标

    x = r * cos(O)

    y = r * sin(O)

    其中 Otheta ,而不是零

    参考:http://www.mathsisfun.com/polar-cartesian-coordinates.html

相关问题