本博客转自lzxzxx神犇,原地址——http://blog.csdn.net/lzxzxx/article/details/48322583
向量
AB−→− 表示一个从点A到点B的向量。
向量满足:
加法的交换性:
a⃗ +b⃗ =b⃗ +a⃗
加法的结合性:
(a⃗ +b⃗ )+c⃗ =a⃗ +(b⃗ +c⃗ )
加法恒等式:
0⃗ +a⃗ =a⃗
对于一个实数
k
,有
对于任意一个向量
X⃗
,存在一个向量
−X⃗
(模相等,方向相反)使得
X⃗ +(−X⃗ )=0
对于实数
r,s
,向量满足:
纯量乘法的结合性:
r(sX⃗ )=(rs)X⃗
纯量乘法的分配性:
(r+s)X⃗ =rX⃗ +sX⃗
向量加法的分配性:
r(X⃗ +Y⃗ )=rX⃗ +rY⃗
向量的坐标表示法:
对于两个维数相同的点 A(x1,x2,...,xn),B(y1,y2,...,yn),AB−→−=(y1−x1,y2−x2,...,yn−xn)
向量加减法:
1°平行四边形法则。
2°对于两个维数相同的向量:它们的加(减)法得出的向量各坐标等于这两个向量各坐标分别相加(减)。
向量的模,即向量的长度:
对于向量 a⃗ =(x1,x2,...,xn),|a⃗ |=∑i=1nx2i−−−−−√
向量乘法:
点积:
对于两个维数为
n
的向量
点积求出的是一个标量。
叉积:
二维向量
a⃗ =(x1,y1),b⃗ =(x2,y2),
a⃗ ×b⃗ =x1y2−x2y1
叉积求出的数值为以
a⃗ ,b⃗
为邻边的平行四边形的有向面积。常用叉积来计算三角形或平行四边形面积及判断两向量的相对方向(即向左拐或向右拐)。
向量的旋转:
向量 <x,y> <script type="math/tex" id="MathJax-Element-120"> </script>逆时针旋转 α 角度变成 <x∗cosα−y∗sinα,x∗sinα+y∗cosα> <script type="math/tex" id="MathJax-Element-122"> </script>
两线段相交
判断两线段是否相交
已知两线段
P1P2,Q1Q2
要求这两线段是否相交。
快速排斥试验
若两线段相交,则以这两线段为对角线分别作两个矩形,这两个矩形必须相交。这就是快速排斥试验。
跨立试验
若
P1P2
跨立
Q1Q2
,则矢量
(P1−Q1),(P2−Q1)
位于矢量
(Q2−Q1)
的两侧。即满足
(P1−Q1)×(Q2−Q1)∗(P2−Q1)×(Q2−Q1)<0
。若
(P1−Q1)×(Q2−Q1)∗(P2−Q1)×(Q2−Q1)=0
,说明
P1或P2
在直线
Q1Q2
上,但因为已通过快速排斥试验,所以这两线段是相交的。故上式可改写成
(P1−Q1)×(Q2−Q1)∗(P2−Q1)×(Q2−Q1)≤0
同理,若
Q1Q2
跨立
P1P2
,则要满足
(Q1−P1)×(P2−P1)∗(Q2−P1)×(P2−P1)≤0
当
P1P2
跨立
Q1Q2
且
Q1Q2
跨立
P1P2
,跨立试验成功。
当快速排斥试验与跨立实验都成功时,这两条线段相交。
求两线段交点
由相似三角形、定比分点等知识我们可以得出两线段交点公式。套用向量乘法,我们能简便地求出两线段交点。
面积
三角形面积
公式很多,在此不赘述,用得较多的是叉积绝对值的一半。
多边形面积
选取多边形上一个顶点作为三角形的一个固定顶点,每次选取多边形上另外两个相邻顶点作为三角形的另外两个顶点,求三角形面积和。
也可看成每次选取多边形上两个相邻顶点,求前一个顶点与后一个顶点关于原点的有向面积和。证明显然。
一个
n
边形的面积公式:
(顶点按顺时针(或逆时针)排序后第
i
个顶点坐标
凸包
平面上 N 个点,用一个最小(周长、面积)的凸多边形包住它们,使每个点落在凸多边形内或凸多边形上。
Graham扫描法
选择一个