在给定航向,起点和点之间的距离的情况下沿着一条线获取点

时间:2017-06-14 18:25:28

标签: c geometry

我目前正致力于研究和编码我的理论以模拟场景。

在给定航向,起点和点之间的距离的情况下,我需要一种方法来逐渐找到沿给定航向的点(线与正x轴之间的角度)。新点应该在标题的方向上。我在某种程度上面临着如何做到这一点的困难。

有足够的时间我可以自己想出一个方法,但鉴于我的编码技能提高不是我的最终结果,我宁愿花更多的时间来试验我的理论,我想知道是否有人可以帮助我找到一个解。我正在使用C,所以C中的解决方案将是首选,而不是使用其他语言中提供的库函数的解决方案。

1 个答案:

答案 0 :(得分:0)

一种解决方案是按照您想要的方向创建单位矢量

例如,假设你想要45度,单位矢量就是 < 1 / sqrt(2),1 / sqrt(2)>。由于它是一个单位矢量,因此该距离为1,因此您可以按每个点所需的距离进行缩放。所以假设你希望每个点都是单位的1/3,那么你只需乘以单位向量即可得到 < 1 /(3sqrt(2)),1 /(3sqrt(2))>然后你就可以做一个循环。所以如果你想在这个方向上得到10分,那就是

unitvector = calculateUnitVector()
unitvector *= distanceBetweenPoints
for(i = 0 ; i < 10; i++){
   drawPoint(startPoint + unitVector * i)
}

我希望这会有所帮助。