向量 学习笔记

向量的基本运算

定义 \(\overrightarrow{a}= \left( x_1,y_1 \right),\overrightarrow{b}= \left( x_2,y_2 \right),\theta\) 为两个向量的夹角

向量加法:

\(\overrightarrow{a}+\overrightarrow{b}=\left( x_1+x_2,y_1+y_2 \right)\)
满足于三角形法则(首尾顺次相连)和平行四边形法则(共起点)

向量减法:

\(\overrightarrow{a}+\overrightarrow{b}=\left( x_1-x_2,y_1-y_2 \right)\)

向量点乘:

\(\overrightarrow{a} \cdot\overrightarrow{b}=x_1x_2+y_1y_2=|\overrightarrow{a}||\overrightarrow{b}|\cos \theta\)
\(\overrightarrow{a} \cdot \overrightarrow{b}>0\)\(0^{\circ} \le \theta <90^\circ\)
\(\overrightarrow{a} \cdot \overrightarrow{b}=0\)\(\theta =90^\circ\)
\(\overrightarrow{a} \cdot \overrightarrow{b}<0\)\(90^\circ \le \theta <180^\circ\)

向量叉乘:

\(|\overrightarrow{a} \times\overrightarrow{b}|=|\overrightarrow{a}||\overrightarrow{b}|\sin \theta\)
计算满足于右手法则
其几何意义为两个向量围成的平行四边形面积
但向量外积本质上在三维空间内定义
\(\overrightarrow{a}=(x1,y1,zz1) ,\overrightarrow{b}=(x2,y2,z2)\)
\(\overrightarrow{a} \times\overrightarrow{b}=(y1z2-y2z1,z1x2-x1z2,x1y2-x2y1)\)

向量旋转 (逆时针)

令被旋转的向量为 \(\left( x,y\right)\)
\(\left(x \cos \theta-y \sin \theta,x \sin \theta+y \cos \theta\right)\)
\(\begin{bmatrix} \cos \theta&-\sin \theta \\ sin \theta & \cos \theta \end{bmatrix}\) \(\begin{bmatrix} x\\ y \end{bmatrix}\)
可以使用画图与三角形恒等变形进行证明

求多边形的面积

将多边形上的点逆时针标记为 $ p_1,p_2,p_3 \cdots p_n$ ,选择一个辅助点 \(O\)
记向量 \(\overrightarrow{v_i}\) 表示 \(\overrightarrow{Op_i}\)
则多边形面积为
\(S= \frac{1}{2}|\sum_{i=1}^N \overrightarrow{v_i} \times \overrightarrow{v_{i\mod n+1}}|\)
使用向量叉乘的几何意义实现,用不同的方向表示正负

坐标的距离

欧式距离

\(n\) 维空间下的点 \(\overrightarrow{A}=(x_{11},x_{12},x_{13}\cdots x_{1n})\)\(\overrightarrow{B}=(x_{21},x_{22},x_{23}\cdots x_{2n})\) 的欧式距离:
\(||\overrightarrow{AB}||=\sqrt{\sum_{i=1}^n(x_{1i}-x_{2i})^2}\)

曼哈顿距离

\(d1(A,B)=|x_1-x_2|+|y_1-y_2|\)
满足以下性质

  1. \(d1(A,B) \ge0\)
  2. \(d1(A,A) =0\)
  3. \(d1(A,B) = d(B,A)\)
  4. \(d1(A,C)+d(C,B) \ge d(A,B)\)
inline double dis(int x1,int y1,int x2,int y2){
    return sqrt((x1-x2)*(x1-x2)+(y1-y2)*(y1-y2));
}

切比雪夫距离

\(d2(A,B)=\max\left\{|x_1-x_2|,|y_1-y_2|\right\}\)

曼哈顿距离与切比雪夫距离的转换

将点 \((x,y)\) 转化为 \((x+y,x-y)\) ,原坐标系的曼哈顿距离为新坐标系中切比雪夫距离
将点 \((x,y)\) 转化为 \((\frac{x+y}{2},\frac{x-y}{2})\) ,原坐标系的曼哈顿距离为新坐标系中切比雪夫距离
例题:
[NOIP2017 提高组] 奶酪
[USACO04OPEN]Cave Cows 3

判断几何图形的关系

判断点是否在线段上

设点为 \(\overrightarrow{Q}\),线段为 \(\overrightarrow{P1P2}\)
判断条件:\((\overrightarrow{Q}-\overrightarrow{P1}) \times (\overrightarrow{P2}-\overrightarrow{P1})=0\)\(\overrightarrow{Q}\) 在以 \(\overrightarrow{P1},\overrightarrow{P2}\) 为对角顶点的矩形内

inline int cross(reg int x1,reg int y1,reg int x2,reg int y2){return x1*y2-y1*x2;}
inline bool check(reg point p1,reg point p2,reg point q){
	if (!(min(p1.x,p2.x)<=q.x&&q.x<=max(p1.x,p2.x)&&min(p1.y,p2.y)<=q.y&&q.y<=max(p1.y,p2.y))) return 0; 
	return cross(p2.x-p1.x,p2.y-p1.y,q.x-p1.x,q.y-p1.y)*
	       cross(p2.x-p1.x,p2.y-p1.y,q.x-p2.x,q.y-p2.y)==0;
}

判断两线段是否相交

设两个线段分别为 \(\overrightarrow{P1P2}\)\(\overrightarrow{Q1Q2}\)

  1. 快速排斥实验:若以 \(\overrightarrow{P1P2}\) 为对角线的矩形与以 \(\overrightarrow{Q1Q2}\) 为对角线的矩形不相交,那么两个线段显然不向交
  2. 跨立实验:如果两线段相交,则两线段必然相互跨立对方
    \(\overrightarrow{P1P2}\) 跨立 \(\overrightarrow{Q1Q2}\) ,则矢量\((\overrightarrow{P1} - \overrightarrow{Q1} )\)\((\overrightarrow{P2} - \overrightarrow{Q1} )\) 位于矢量 \((\overrightarrow{Q2} - \overrightarrow{Q1} )\) 的两侧
    在代码实现上为 \((\overrightarrow{P1} - \overrightarrow{Q1} ) \times (\overrightarrow{Q2} - \overrightarrow{Q1} ) * (\overrightarrow{P2} - \overrightarrow{Q1} ) \times(\overrightarrow{Q2} - \overrightarrow{Q1} ) \le0\)
    当且仅当 \(\overrightarrow{Q1}\)\(\overrightarrow{P1P2}\) 上时取等
    同时要对 \(\overrightarrow{Q2}\) 进行判断
    判断线段和直线是否相交 只要进行跨立实验

判断点是否在多边形中

设这个点为 \(P\) ,从 \(P\) 引一条射线 \(L\),计算与多边形的交点
若交点个数为奇数,在多边形内,否则在多边形外
几种情况要特判一下

posted @ 2022-10-10 15:13  Matutino_Lux  阅读(170)  评论(0)    收藏  举报