欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

判断四个点是否共平面,Python实现

程序员文章站 2021-12-17 21:54:06
...
    #判断四个点是否共平面:
    #计算结果 = 0,就说明是共平面
    #由于实际坐标并非完全精确,所以只要做到计算结果很接近0,就可以认为是共平面
    #这里假设 -0.15 < 结果  < 0.15,就认为是共平面 
    #这里的0.15是经过多次尝试得到的
    @staticmethod
    def isFourPointsInSamePlane(p0, p1, p2, p3):
        s1 = Point(p1.x - p0.x, p1.y - p0.y, p1.z - p0.z)
        s2 = Point(p2.x - p0.x, p2.y - p0.y, p2.z - p0.z)
        s3 = Point(p3.x - p0.x, p3.y - p0.y, p3.z - p0.z)
        
        result = s1.x*s2.y*s3.z+s1.y*s2.z*s3.x+s1.z*s2.x*s3.y-s1.z*s2.y*s3.x-s1.x*s2.z*s3.y-s1.y*s2.x*s3.z
        
        #R2.planeError是自定义的一个误差范围:0.1
        #print(result)
        #判断计算结果是否在误差范围内
        if MathTool.isInRange(result, 0, R2.planeError):
            return True
        return False       

   #是否在误差范围内:这里的error是在Resource中定义的键长、键角等误差
    #如果A - error <= B <= A + error,则认为A在B的误差范围内
    #通过数学证明,参数A和B等价,也就是将A和B互换后不影响结果
    @staticmethod
    def isInRange(A, B, error):
        if A - error <= B <= A + error: 
            return True
        else:
            return False
相关标签: 几何学

上一篇: Boundary(几何)

下一篇: Finding the Order