我一直在研究一个小的火车模拟程序,只是为了好玩,到目前为止,它使用了一个非常烦人的复杂系统(贝塞尔曲线)来创建轨道。我想要一个简单的表格。我在想的是类似《 Planet Coaster》游戏中的路径构建。据我所知,游戏仅使用路径的起始点,即该起始点的方向(在我的情况下为3D空间中的切向量)。
过去的两天我一直在研究这个问题,经过一段时间的磨合后,我一直在思考。我试图用铅笔和纸将其绘制出来,以找到解决问题的方法,但是我有点不知所措了,我想换个角度。如果有人对绘制上述曲线有任何建议或方法,将不胜感激。
更多技术细节/另一种措辞,给定点A和在点a处的切向量,求出一条以恒定半径到达点B的曲线。
指向类似于我所想到的图形的链接:
很抱歉,如果我的格式很奇怪,我是刚接触交易所的新手!谢谢您的帮助! (我不知道该在哪里发布,数学还是溢出,但是我发现应用程序更适合溢出)
答案 0 :(得分:1)
恒定半径曲线是圆弧。
给出:点A
,B
,切向量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参数未知
向量CM
和D
应该是垂直的,因此它们的点积为零:
(M - C).dot.D = 0
对t
求解此方程,得到点C
和圆弧半径