我有一组由用户得出的观点.他们将围绕某些对象进行绘制.
我需要以某种方式将这组点变成一个形状,这样我才能找到检测碰撞的区域.
图片将阐明:
Set of points represented as shape http://www.imagechicken.com/uploads/1277188630025178800.jpg
.
到目前为止,我最好的想法是遍历每个像素,确定形状是“内部”还是“外部”,但这太慢了,我什至不知道如何确定“内部” /“ “外”位…
有什么提示吗?我正在使用.NET(C#和XNA)来帮助您!
解决方法:
您可以将形状视为多个形状的并集,每个形状都是一个简单的闭合多边形.
按照以下方式检查每个对象是否在任何多边形内:
所有点均由线连接-每条线都有一个定义它的方程式.
对于每个对象-为穿过该对象的直线建立方程式.
现在-对于每个对象方程式,您需要检查多少条线(点之间的线)与该对象方程式相交-但仅计算两个点之间的交点(而不是在线外的其余部分)两个点)和仅位于对象一侧的交叉点(拾取一侧-无关紧要).
如果计数是偶数-对象在形状外部-否则在内部.