我有一个四边形数组,每个四边形都有自己的位置,定义了顶点的坐标。我在相机的平面上有场景的投影。我想知道每个quad的数组元素的投影面积。事实上,我不会通过投影像素知道它属于哪个对象。
问问题
75 次
1 回答
0
您可以使用Viewport.Project 方法将每个顶点投影到屏幕上。
之后,您在屏幕坐标中拥有四边形的顶点。剩下的就是确定所讨论的点是否属于该多边形。这可以通过不同的方式来完成。
一种选择是确定点相对于每个多边形边的边。这是因为多边形是凸的。
previousSide := 0
for each edge in polygon
d1 := edge.p2 - edge.p1 //direction vector of edge
d2 := pointInQuestion - edge.p1 //direction of first edge point to point in question
side = d1.x * d2.y - d1.y * d2.x //cross product
if side * previousSide < 0 then return false //different sides
previousSide := side
next
return true
于 2012-10-12T15:18:53.790 回答