1.2 论文内容概要
本文安排如下:
第二节 主要对Python源代码中的多边形面积及向量夹角函数的理解和阅读,并对分析其涉及的计算几何知识。
第三节 主要实现使用C语言完成Python源代码中的功能,并详述算法原理及所设计的程序。
第四节 列举数据,代入程序中,得出的结果,与自己计算并结合作图的结果相比较,检验程序是否完成了所需要的功能。
2 Python源代码解读
本节主要结合计算几何知识分析Python源代码。
2.1源代码部分函数解读
2.1.1 计算多边形面积
(1)def getAreaLoop(loop):
areaLoopDouble = 0.0
for pointIndex, point in enumerate(loop):
pointEnd = loop[(pointIndex + 1) % len(loop)]
areaLoopDouble += point.real * pointEnd.imag - pointEnd.real * point.imag
return 0.5 * areaLoopDouble
'Get the area of a complex polygon.'
分析:
本段函数利用向量叉积公式:
A=0.5*sum(xi*y(i+1)-x(i+1)*yi)(i=0-n-1逆时针排列>0))(即源代码中areaLoopDouble += point.real * pointEnd.imag - pointEnd.real * point.imag计算多边形面积,其中point.real,point.imag分别表示为起始向量的横坐标与纵坐标,pointEnd.real,pointEnd.imag分别表示末尾向量的横坐标与纵坐标,通过向量叉积公式计算得出2倍的多边形面积,最后乘以1/2即得多边形面积。
(2)def getAreaLoopAbsolute(loop):
return abs(getAreaLoop(loop))
'Get the absolute area of a complex polygon.'
分析:
本段函数中,使用绝对值函数abs()将计算出来的多边形面积求绝对值。
(3)def getAreaLoops(loops):
areaLoops = 0.0
for loop in loops:
areaLoops += getAreaLoop(loop)
return areaLoops
'Get the area of a list of complex polygons.'
分析:
本段函数中,使用for循环语句,将计算出的多个多边形面积进行求和。