确定(x,y,z)点是否在由点阵列定义的形状内

Mat*_*att 5 c# arrays point shape shapes

如果我有一个点数组(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; }
Run Code Online (Sandbox Code Playgroud)

它需要一些工作,但这就是它的核心.

再次感谢

Guf*_*ffa 16

使用您知道的在形状之外的点,并检查从该点到给定点的直线是否穿过该形状的曲面.如果它通过奇数个表面,则给定点在形状内.

  • 您刚为Matt创建了3个新问题. (4认同)
  • 很好的答案,但实际上这样做比听起来更难. (2认同)