python 已知平行四邊形三個點,求第四個點
阿新 • • 發佈:2019-02-01
import numpy as np #已知平行四邊形三個點,求第四個點 #計算兩點之間的距離 def CalcEuclideanDistance(point1,point2): vec1 = np.array(point1) vec2 = np.array(point2) distance = np.linalg.norm(vec1 - vec2) return distance #計算第四個點 def CalcFourthPoint(point1,point2,point3): #pint3為A點 D = (point1[0]+point2[0]-point3[0],point1[1]+point2[1]-point3[1]) return D #三點構成一個三角形,利用兩點之間的距離,判斷鄰邊AB和AC,利用向量法以及平行四邊形法則,可以求得第四個點D def JudgeBeveling(point1,point2,point3): dist1 = CalcEuclideanDistance(point1,point2) dist2 = CalcEuclideanDistance(point1,point3) dist3 = CalcEuclideanDistance(point2,point3) dist = [dist1, dist2, dist3] max_dist = dist.index(max(dist)) if max_dist == 0: D = CalcFourthPoint(point1,point2,point3) elif max_dist == 1: D = CalcFourthPoint(point1,point3,point2) else: D = CalcFourthPoint(point2,point3,point1) return D print(JudgeBeveling((0,1),(1,0),(1,1))) print(JudgeBeveling((5,39),(500,35),(496,17)))