我目前正在研究并编写理论来模拟场景。
我需要一种方法,在给定航向、起点和点之间的距离的情况下,沿着给定航向(直线与正 x 轴之间的角度)增量查找点。新点应位于航向方向。不知何故,我在如何去做这件事上面临着困难。
如果有足够的时间,我可以自己想出一种方法,但考虑到提高我的编码技能并不是我的最终结果,我宁愿花更多时间尝试我的理论,我想知道是否有人可以帮助我找到一个方法解决方案。我正在使用 C 语言,因此首选 C 语言的解决方案,而不是使用其他语言中可用的库函数的解决方案。
最佳答案
一种解决方案是按照您想要的方向创建一个单位 vector
例如,假设您想要 45 度,单位 vector 将是 <1/sqrt(2), 1/sqrt(2)>。该距离将为 1,因为它是单位 vector ,因此您可以按每个点所需的距离对其进行缩放。假设您希望每个点都是单位的 1/3,那么您只需乘以单位 vector 即可得到 <1/(3sqrt(2)), 1/(3sqrt(2))> 然后你就可以做一个循环。所以如果你想在这个方向上得到 10 个点,那就是
unitvector = calculateUnitVector()
unitvector *= distanceBetweenPoints
for(i = 0 ; i < 10; i++){
drawPoint(startPoint + unitVector * i)
}
我希望这有帮助。
关于c - 沿着给定的航向、起点和点之间的距离获取沿线的点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44552063/