【发布时间】:2011-08-14 23:44:20
【问题描述】:
在游戏程序的上下文中,我有一个移动的圆和一个固定的线段。该段可以具有任意大小和方向。
- 我知道圆的半径:r
- 我知道移动前圆的坐标:(xC1, yC1)
- 我知道移动后圆的坐标:(xC2, yC2)
- 我知道线段末端的坐标:(xL1, yL1) - (xL2, yL2)
我在尝试计算时遇到了困难:
- 布尔值:如果圆的任何部分在从 (xC1, yC1) 移动到 (xC2, yC2) 时碰到线段
- 如果布尔值为真,圆心在碰到线段时的坐标(x,y)(我的意思是当圆第一次与线段相切时)
【问题讨论】:
-
从技术上讲,您需要处理向量 xC1/yC1 和 xC2/yC2 之间的每个插值点,这就是我要使用的搜索词。但是,这是一个编程主题的编程板,这不是我们可以在这里回答的问题,我们不知道您使用的是哪种技术/语言/API。对不起。
-
@Russ C:事实上它确实属于这个社区,因为它涉及到一个软件算法。因此,它(至少)适用于任何可用于游戏编程的编程语言,所以问题是“与语言无关”。
-
不,它涉及数学辩论。没有讨论技术或 API 或 OP 试图解决的问题。充其量是社区 wiki,最坏的情况是它可以变成关于最佳或最差尝试的辩论。有人可以发布一个很好的答案并将其否决,因为他们使用极坐标而不是笛卡尔坐标。请参阅stackoverflow.com/faq#dontask。我同意我应该更具体地措辞我的评论,以要求乔尔完善他的问题。
标签: algorithm 2d collision-detection