4    算法检验    19
4.1多边形面积    19
4.1.1 叉积求解法    19
4.1.2 公式求解法    20
4.3两线段交点    20
4.4判断多边形是否为凸多边形    21
总结    22
致谢    23
参考文献    24
1    绪论
1.1 背景
发明家恩里科•迪尼(Enrico Dini)设计的一种神奇打印机——3D打印机(3D Printers),即快速成形技术的一种机器。这是一种以数学模型文件作为基础,运用粉末状金属或塑料等可粘合材料,通过逐层打印的方式来构造物体的技术。3D打印机不仅可以“打印”出一幢完整的建筑,甚至还可以在航天飞船中给宇航员打印任何所需的物品的形状。其打印过程简单说来,就是把数据和原料放进3D打印机中,机器就会按照程序把产品一层层造出来。最后打印出的产品,可以即时使用。过去其常在模具制造、工业设计等领域被用于制造模型,现正逐渐用于一些产品的直接制造,这意着这项技术正在普及。在本课题中我们主要研究计算几何在3D打印机中的应用。

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循环语句,将计算出的多个多边形面积进行求和。

2.1.2计算两个向量的夹角
(1)def getAngleAroundZAxisDifference(subtractFromVec3, subtractVec3):
    subtractVectorMirror=complex(subtractVec3.x,-subtractVec3.y)
    differenceVector=getRoundZAxisByPlaneAngle(subtractVectorMirror, subtractFromVec3 )
    return math.atan2( differenceVector.y, differenceVector.x )
上一篇:二元函数的极值存在的判别方法
下一篇:分数阶微分方程在金融中的应用

螺纹钢期货交易中几个影...

几种特殊分块矩阵和的Drazin逆的表达式

浅谈分形几何+matlab代码

浅谈数列极限的若干计算方法

浅谈小学数学图形与几何的教学策略

几何解题中的参数思想及方法

数学高考中解析几何考点分析

酵母菌发酵生产天然香料...

上海居民的社会参与研究

提高教育质量,构建大學生...

浅谈高校行政管理人员的...

浅论职工思想政治工作茬...

压疮高危人群的标准化中...

AES算法GPU协处理下分组加...

基于Joomla平台的计算机学院网站设计与开发

STC89C52单片机NRF24L01的无线病房呼叫系统设计

从政策角度谈黑龙江對俄...