给一个多边形,寻找一条线,把这个多边形分成面积相等的两部分?
思路
1. 把这个多边形拆分成一个个小的三角形。
2.从某一个三角形开始,从顶点连接到对边的中的点,再从中点连接到该条边对应的定点
3.重复第二步工作。
Python实现
#coding:utf-8
#多变形的顶点(顺时针方向按顺序给出)
endPoints=[(0,0),(0,1),(1,1),(1,0)]
def partitionPolygon(points):
#折线的端点
linePoints=[]
#从第2个点开始
for i in range(1,len(points)):
if i%2:
linePoints.append(points[i])
else:
a=(points[0][0]+points[i][0])/2.0
b=(points[0][1]+points[i][1])/2.0
linePoints.append((a,b))
print(linePoints)
if __name__=="__main__":
partitionPolygon(endPoints)