如果我有一个点(x,y,z)数组并被赋予一个点(x,y,z),那么我应该使用什么代码确定该点是否位于数组定义的形状内?
我在这上面画了一个空白...
我正在使用C#
编辑
感谢您的答复,我从评论中发现了此链接(http://alienryderflex.com/polygon/),该链接很好地说明了此过程。
谢谢!
供引用:
bool pointInPolygon() {
int i, j=polySides-1 ;
boolean oddNodes=NO ;
for (i=0; i<polySides; i++) {
if (polyY[i]<y && polyY[j]>=y
|| polyY[j]<y && polyY[i]>=y) {
if (polyX[i]+(y-polyY[i])/(polyY[j]-polyY[i])*(polyX[j]-polyX[i])<x) {
oddNodes=!oddNodes; }}
j=i; }
return oddNodes; }
它需要一些工作,但这就是它的胆量。再次感谢
最佳答案
使用一个您知道在形状外部的点,并检查从该点到给定点的线是否穿过该形状的表面。如果它通过奇数个表面,则给定点在形状内部。
关于c# - 确定(x,y,z)点是否在由点数组定义的形状内,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/4963110/