从切线矢量和两个点恒定的半径转弯

时间:2018-07-28 03:12:26

标签: math geometry curve coordinate

我一直在研究一个小的火车模拟程序,只是为了好玩,到目前为止,它使用了一个非常烦人的复杂系统(贝塞尔曲线)来创建轨道。我想要一个简单的表格。我在想的是类似《 Planet Coaster》游戏中的路径构建。据我所知,游戏仅使用路径的起始点,即该起始点的方向(在我的情况下为3D空间中的切向量)。

过去的两天我一直在研究这个问题,经过一段时间的磨合后,我一直在思考。我试图用铅笔和纸将其绘制出来,以找到解决问题的方法,但是我有点不知所措了,我想换个角度。如果有人对绘制上述曲线有任何建议或方法,将不胜感激。

更多技术细节/另一种措辞,给定点A和在点a处的切向量,求出一条以恒定半径到达点B的曲线。

指向类似于我所想到的图形的链接:

enter image description here

source

很抱歉,如果我的格式很奇怪,我是刚接触交易所的新手!谢谢您的帮助! (我不知道该在哪里发布,数学还是溢出,但是我发现应用程序更适合溢出)

1 个答案:

答案 0 :(得分:1)

恒定半径曲线是圆弧。

给出:点AB,切向量T(在您的图片上为Ua

半径矢量P(在图片中为a-o)垂直于切线(圆形属性)。
与弧弦(c-Md)垂直的中心穿过圆心。
因此我们可以找到圆心作为(a-o)和(c-Md)线的交点。
但是在(a-o)处找到与C处的弦垂直的点Md比较简单-它是圆心。

设为差向量D = B - A
设为中间点M = (B + A) / 2
使向量垂直于切向量P = (T.Y, -T.X)
圆心为C = A + t * P,其中t参数未知
向量CMD应该是垂直的,因此它们的点积为零:

(M - C).dot.D = 0

t求解此方程,得到点C和圆弧半径