计算几何

相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

计算几何的方法:
在计算几何里,我们知道,△ABC的面积就是“向量AB”和“向量 AC”两个向量叉积的绝对值的一半。其正负表示三角形顶点是在 右手系还是左手系。
B
C
A ABC成左手系,负面积
2020/2/6
C B
A ABC成右手系,正面积 13
凸多边形的三角形剖分
很自然地,我们会想到以 P1为扇面中心,连接P1Pi就得到N-2个三角形,由于凸性,保证这 些三角形全在多边形内,那么,这个凸多边形的有向面积: A=sigma(Ai) (i=1…N-2)
2020/2/6
18
2020/2/6
19
2020/2/6
20
2020/2/6
21
2020/2/6
22
2020/2/6
23
2020/2/6
24
2020/2/6
25
Biblioteka Baidu 2020/2/6
26
2020/2/6
27
2020/2/6
28
2020/2/6
29
2020/2/6
30
2020/2/6
AB×CD数值= x3*y4 – x4*y3。
方向由右手螺旋定则判定。
几何意义:AB×CD = |AB| * |CD| * sin(a),取绝对值即是以AB和CD为边的平行四边形面积
五、线段相交的判定(判定线段AB和线段CD是否相交,属于哪种相交)。
规范相交:交点只有一个,且不是线段的端点。
1、充要条件:点A和点B在CD的两侧并且点C和点D在AB的两侧。
思考如下图形:
2020/2/6
9
先看最简单的多边形——三角形
2020/2/6
10
三角形的面积:
在解析几何里, △ABC的面积可以通过 如下方法求得:
点坐标 => 边长 => 海伦公式 => 面积
2020/2/6
11
思考:此方法的缺点:
计算量大 精度损失
更好的方法?
2020/2/6
12
几何计算初步
主要内容
计算几何简介 1. 点,线,面,形基本关系,点积叉积 2. 多边形面积 3. 凸包
计算几何简介
由函数逼近论、微分几何、代数几何、计算数学等形 成的边缘学科,研究几何形体的计算机表示、分析和 综合。它是计算机辅助设计(即CAGD)的数学基础。 计算机辅助设计的研究工作始于1955年 ,20世纪60年 代进入实用阶段,到70年代已广泛应用于造船、航空 、汽车及众多工业产品的外形设计和制造领域。进行 此项工作的设计者首先要把一般的曲线或曲面表示在 计算机上,然后对这些曲线或曲面的几何性质进行分 析,比如看曲线上有无拐点、奇点、曲面的凹凸性等 等,最后采用有效的数值计算方法,经过程序运算或 人机对话等形式控制或修改这些曲线或曲面,使之符 合产品设计的要求。
习题
POJ 2318 TOYS(点,线,面,形基本关系) POJ 1113 Wall(凸包) POJ 1654 Area(面积问题)
形。
P3 P4
P2
P0
P1
P5 P6
2020/2/6
16
凸包
篱笆问题: 假设你种了很多树,想用一个篱笆把所有的
树都包在里面。出于经济考虑,这个篱笆应该是越 小越好。
夹角公式 设直线l1、l2的斜率存在,分别为k1、k2 l1到l2的转向角为θ,则 tanθ=(k2- k1)/(1+ k1k2) 1与2的夹角为θ,则tanθ=∣(k2- k1)/(1+ k1k2)∣。 直线的斜率公式:k=(y2-y1)/(x2-x1)
0<=a<360,也可以认为是两向量的夹角,0<=a<=180。一般用于求夹角,a = acos( (AB * CD) / (|AB| * |CD|) )。也可:|CD| * cos(a) = AB * CD / |AB|,即向 量CD在AB上的投影。
叉积,线段相交的判定
四、叉积。
叉积的结果为一个向量。
2、A在线段CD上的充要条件:
a) 。
AC×AD = 0,几何意义,AC和AD组成的平行四边形的面积为0,即A、C、D三点共线
b)
A点在CD之间,A.x处于C.x和D.x之间并且A.y处于C.y和D.y之间

向量加法
向量加法 向量也支持各种数学运算。最简单的就是加法。我们可以对两个 向量相加,得到的仍然是一个向量。我们有: V1(x1, y1)+V2(x2, y2)=V3(x1+x2, y1+y2)
2、如何判断点A在向量CD的左侧还是右侧:CA×CD的数值大于0则左侧,小于0则右侧。于 是CA×CD的数值和CB×CD的数值异号,点A和点B在CD的两侧,同理可判断点C和点D是否在 AB的两侧(注意,必须严格异号)。
不规范相交:交点为某个线段的端点,甚至两线段有一段重合。
1、充要条件,一条线段的一个端点在另一条线段上。即A在CD上或B在CD上或C在AB上或D在 AB上。
点,向量,点积
一、点。 点的坐标A(x1, y1),B(x2, y2)
二、向量。 向量AB = (x2-x1, y2-y1) = (x3,y3) ,CD = (x4, y4)。 向量的模|AB| = sqrt(x3*x3 + y3*y3) 即向量的长度。
三、点积。 点积的结果为一个数值。 数值计算方法AB * CD = x3*x4 + y3*y4。 几何意义AB * CD = |AB| * |CD| * cos(a),a为向量AB逆时针转向CD的角度,
上图表示了四个向量相加。注意就像普通的加法一样,相 加的次序对结果没有影响(满足交换律),减法也是一样的。
点-线距离
找出一个点和一条线间的距离是经常遇见的几何问题之一。假设 给出三个点,A,B和C,你想找出点C到点A、B定出的直线间距 离。第一步是找出A到B的向量AB和A到C的向量AC,现在我们用 该两向量的叉积除以|AB|,这就是我们要找的的距离了(下图中 的红线)。 d = (AB x AC)/|AB|
多边形的面积
另外有一个普遍的问题是计算一个给出各个顶点的 多边形的面积。我们考虑如下图所示的有五个顶点 的非凸多边形。要计算它的面积,我们可以将它分 割为一个个三角形。在这个五边形中,我们可以分 割为三个三角形:ABC,ACD和ADE。不过,等等 ....你可能会反对,并不是每个三角形都是这个五边 形的一部分。这里,叉积是有正负的优势就大大体 现出来了,它会让每件事情都变得很奇妙。首先, 我们计算ABxBC可以得到三角形ABC的面积,如果 你还记得右手法则的话,在本例中,AB到BC是顺 时针,那么我们就会得到一个负值。同样地,由 ACxAD的叉积我们可以得到三角形ACD的面积,这 也是一个负值。最后,我们计算ADxAE,由于ADE 三点是逆时针方向,我们知道那将得到一个正值。 我们将这三个面积(两负一正)相加,本例中,我 们就得到一个负值,那个绝对值就是这个多边形的 面积。
31
2020/2/6
32
计算几何题的特点与做题要领
1.大部分不会很难,少部分题目思路很巧妙 2.做计算几何题目,模板很重要,模板必须高度可靠
。 3.要注意代码的组织,因为计算几何的题目很容易上
两百行代码,里面大部分是模板。如果代码一片混乱 ,那么会严重影响做题正确率。 4.注意精度控制。 5.能用整数的地方尽量用整数,要想到扩大数据的方 法(扩大一倍,或扩大sqrt2)。因为整数不用考虑浮 点误差,而且运算比浮点快。
P1
A1 P2
P6 A4
P5 A3
A2 P4
2020/2/6
P3
14
凹多边形的面积?
依然分割成三角形 计算方法不变
注意符号,最后取绝对值
2020/2/6
15
任意点为扇心的三角形剖分:
我们能把多边形分成N-2个三角形,为什么不能分成N个三角形呢? 比如,以多边形内部的一个点为扇心,就可以把多边形剖分成 N个三角
相关文档
最新文档