3

关于这个问题,我想知道.NET 是否有任何库(或函数)我可以用来检测一个点是否与另一个点发生冲突。

我不确定我应该使用什么角度,但是否有这样的功能

func(point src, rect target, angle, distanceOfVision, listPointOrRectOfWalls)

不太可能,但我不知道公式或如何开始。它是一个快速而肮脏的原型。我正在考虑编写函数,但下降角度使视线成为矩形,并检查 src 和目标之间是否有任何墙点。

4

1 回答 1

3

我会这样解决问题:

  1. 矩形的三个点定义了矩形所在的平面。
  2. 代替将线表示为点和角度,将其表示为点和向量:source_point + direction_vector * t。如果你设置t = 1你有两个点定义你的线。
  3. 计算线与平面的交点:http ://en.wikipedia.org/wiki/Line-plane_intersection
  4. 检查交点是否包含在矩形内。
于 2010-04-23T09:11:40.767 回答