JCo*_*way 9 c c++ geometry trigonometry geometric-arc
我已经花了这么多时间,我可以感觉到我的理智慢慢滑落.所以任何帮助都会真正受到赞赏.我会尝试尽可能简洁.
我在2D平面上有一个圆圈.我知道它的中心点(C)和半径(R)的笛卡尔坐标.
我的困惑源于这个问题.在圆圈外面的平面上设有一个点; 我可以计算最接近该点的圆周上的点(P).
我想要做的是确定圆周上2个点的(x,y)坐标.我们称他们为P1和P2.P1和P2是弧的两端.弧具有固定长度(X).P是P1和P2之间的中间点.因此,从P到P1&P到P2的弧长都是X/2.
简而言之:给定C,R,P,X; 我需要计算P1和P2.
我试图用c ++编写代码,但任何建议或伪代码都会很棒.
编辑:X是弧长,而不是P1和P2之间的直线
在圆上,角度theta对应于 的弧长theta * R,这意味着您的弧所对的角度为theta = X / R。所以如果从你的观点开始
P = C + R * (sin(u), cos(u))
Run Code Online (Sandbox Code Playgroud)
然后只需向上/向下移动theta/2:
P1 = C + R * (sin(u + theta/2), cos(u + theta/2))
Run Code Online (Sandbox Code Playgroud)
和
P2 = C + R * (sin(u - theta/2), cos(u - theta/2))
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4246 次 |
| 最近记录: |