一、约定格式
a) 点、向量的表示
b) 封装向量加减法、点积、叉积
double mult(struct point p1,struct point p2,struct point p3)
{
return (p2.x-p1.x)*(p3.y-p1.y)-(p2.y-p1.y)*(p3.x-p1.x);
}
double dis(struct point p1,struct point p2)
{
return (p1.x-p2.x)*(p1.x-p2.x)+(p1.y-p2.y)*(p1.y-p2.y);
}
c) 线段——>(两个点隔得很远,取值很大)直线
矩形——>平面
二、点定位
a) 判断点是否在线段上
i. 通过叉乘为零判断点在直线上
ii. 点的坐标在线段端点范围内
b) 判断点在三角形内
i. 三个小三角形面积和等于大三角形
c) 判断点在多边形内外
i. 方法一:扫描法
1. 水平向右作一射线(长线段)
2. 射线与多边形有奇数个交点,则在多边形内
3. 细节:点在边上、射线交于顶点等
4. 适用于所有多边形
ii. 方法二:叉乘判别法
1. 按照顺时针给每条边编号
2. 两个向量:这条边的第一个端点连向第二个端点,判断点和第一个端点
3. 所有矢积为正
4. 适用于凸多边形
iii. 方法三:角度和判别法
1. 内角和2pi,角度有正负
2. 注意精度和单位
3. 适用于所有多边形
d) 判断点在矩形和圆中,直接用简易方法就行了
三、线段性质
a) 判断两线段相交(两个向量相互叉乘为零:1.一条线段的起点/终点在另一条线段上,2两条线段重合;两个向量相互叉乘不全部小于零:两条线段不相交;两个向量相互叉乘全部小于零:两条线段相交.)
i. 快速排斥实验
ii. 通过i进行跨立实验
b) 求线段交点
i. 方法一:先判断相交,再使用解析几何方法
ii. 方法二:叉积法(公式)
c) 判断一组线段相交
i. 按坐标把所有线段端点从小到大排序,设集合为S
ii. 取一个端点p.如果p是线段s的左端点,则插入序列T中
iii. 1
iv. 1
四、半平面求交
a) 增量法
b) 分治法
c) 排序增量法
解析几何题纲
一、交点计算
a) 点到线段的最近点。设P(x1,y1)Q(x2,y2)R(x0,y0),Q 到PR最近点
i. 线段平行于坐标轴
ii. 线段不平行于坐标轴
iii. 以下各点都是处理下类似的细节就好
b) 点到圆的最近距离、最近点
c) 两条共线线段的交点
d) 两条不共线线段的交点
e) 线段与直线/圆的交点
二、面积
a) 三角形的面积:七类公式https://zhidao.baidu.com/question/618184143749046732.html
1.已知三角形底a,高h,则 S=ah/2
2.已知三角形三边a,b,c,则
(海伦公式)(p=(a+b+c)/2)
S=√[p(p-a)(p-b)(p-c)]
=(1/4)√[(a+b+c)(a+b-c)(a+c-b)(b+c-a)]
3.已知三角形两边a,b,这两边夹角C,则S=1/2 * absinC
4.设三角形三边分别为a、b、c,内切圆半径为r
则三角形面积=(a+b+c)r/2
5.设三角形三边分别为a、b、c,外接圆半径为R
则三角形面积=abc/4R
6.S△=1/2 *
| a b 1 |
| c d 1 |
| e f 1 |
| a b 1 |
| c d 1 | 为三阶行列式,此三角形ABC在平面直角坐标系内A(a,b),B(c,d), C(e,f),这里ABC
| e f 1 |
选区取最好按逆时针顺序从右上角开始取,因为这样取得出的结果一般都为正值,如果不按这个规则取,可能会得到负值,但不要紧,只要取绝对值就可以了,不会影响三角形面积的大小!
7.海伦——秦九韶三角形中线面积公式:
S=√[(Ma+Mb+Mc)*(Mb+Mc-Ma)*(Mc+Ma-Mb)*(Ma+Mb-Mc)]/3
其中Ma,Mb,Mc为三角形的中线长.
8.根据三角函数求面积:
S= ½ab sinC=2R² sinAsinBsinC= a²sinBsinC/2sinA
注:其中R为外切圆半径。
9.根据向量求面积:
SΔ)= ½√(|AB|*|AC|)²-(AB*AC)²
b) 多边形的面积(简单不自交):三角剖分
i. 内点与顶点
ii. 顶点与顶点
iii. 外点与顶点
三、与三角形有关的圆
a) 外接圆:
b) 内切圆:
四、对称
a) 点对称
b) 直线对成
五、平移和旋转
六、最小圆覆盖
a) 点增量
b) 三角形增量法
凸包部分(求用凸多边形的包围起来:1、叉乘为负O(n^2);2、用极坐标表示个点,按角度排序,用栈维护,如果出现凹,弹出这个点)
一、概念
二、卷包裹法
三、Graham-Scan算法
四、旋转卡壳
剩余的几何板块:
立体几何(相交、投影、多面体、三维土包、最小球包涵、坐标变换)
Voronoi图
三角刨分