内置光线追踪技术?

3

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

我不确定应该使用哪些角度,但是否有类似这样的函数:

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

这很不可能,但我不知道公式或如何开始。这只是一个快速而简单的原型。我在考虑编写函数,将角度转换为视线矩形,并检查任何墙点是否位于源和目标之间。


我真的不知道,但这可能是XNA提供的功能吗? - Jørn Schou-Rode
只是为了好玩:http://tirania.org/blog/archive/2007/Nov-16.html ^^ - tanascius
1个回答

3
我会这样解决问题:
  1. 矩形的三个点定义了矩形所在的平面。
  2. 将线表示为一个点和一个向量,而不是一个点和一个角度:source_point + direction_vector * t。如果你设置t = 1,你就有了两个定义线的点。
  3. 计算线与平面的交点:http://en.wikipedia.org/wiki/Line-plane_intersection
  4. 检查交点是否在矩形内部。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接