c - 沿着给定的航向、起点和点之间的距离获取沿线的点

标签 c geometry

我目前正在研究并编写理论来模拟场景。

我需要一种方法,在给定航向、起点和点之间的距离的情况下,沿着给定航向(直线与正 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/

相关文章:

c - 需要帮助理解指针和其他各种 C 东西

c# - 启动vg dev,是什么语言?

algorithm - 按角度将小物体放在大物体内部

java - 用Java生成直立的正方形格子

algorithm - 欧拉计划#163 理解

c++ - 计算面法线和缠绕

c - 21天自学C

c - 跨多个文件的变量访问

c - 从环境 C 中的给定变量中删除值

c# - 边界表示数据结构