本文标题就俩字:向量

感谢boshi和Dimitry大佬!!!您们tql!!!

向量的基本操作

加减

几何意义:满足平行四边形法则

代数意义: a ⃗ ± b ⃗ = ( x a ± x b , y a ± y b , . . . ) \vec a \pm \vec b=(x_a \pm x_b,y_a \pm y_b,...) a ±b =(xa±xb,ya±yb,...)

点乘

几何意义: a ⃗ \vec a a b ⃗ \vec b b 上的投影与 ∣ b ⃗ ∣ |\vec b| b 的乘积。

代数意义: a ⃗ ⋅ b ⃗ = ( x a x b , y a y b , . . . ) \vec a \cdot \vec b= (x_ax_b,y_ay_b,...) a b =(xaxb,yayb,...)

叉乘

几何意义:

除了二维情况下叉乘是假的(表示两向量所成平行四边形的有向面积)以外, k k k维下必须有 k + 1 k+1 k+1个向量一起叉乘,叉积是一个和它们都垂直的向量。

代数意义:

a ⃗ × b ⃗ = ∣ i ^ j ^ k ^ ⋯ x a y a z a ⋯ x b y b z b ⋯ x c y c z c ⋯ ⋮ ⋮ ⋮ ⋱ ∣ \vec a \times \vec b= \left| \begin{matrix} \widehat{i} & \widehat{j} & \widehat{k} & \cdots \\ x_a & y_a & z_a & \cdots \\ x_b & y_b & z_b & \cdots \\ x_c & y_c & z_c & \cdots \\ \vdots & \vdots & \vdots & \ddots \end{matrix} \right| a ×b =i xaxbxcj yaybyck zazbzc

混合积

这里主要提一下三维,其实我们说的二维叉积更像混合积的说……

三维下求三个向量所成平行六面体的有向面积,方向遵循右手定则。

[ a ⃗ , b ⃗ , c ⃗ ] = ∣ x a y a z a x b y b z b x c y c z c ∣ [ \vec{a},\vec{b},\vec{c} ]= \left| \begin{matrix} x_a & y_a & z_a \\ x_b & y_b & z_b \\ x_c & y_c & z_c \\ \end{matrix} \right| [a ,b ,c ]=xaxbxcyaybyczazbzc

旋转

将向量逆时针旋转 θ \theta θ

r o t a t e ( a ⃗ , θ ) = ( x cos ⁡ θ − y sin ⁡ θ , x sin ⁡ θ + y cos ⁡ θ ) rotate(\vec a,\theta)=(x \cos{\theta}-y \sin{\theta},x \sin{\theta}+ y \cos{\theta}) rotate(a ,θ)=(xcosθysinθ,xsinθ+ycosθ)

放缩

k a ⃗ = ( k x , k y , . . . ) k \vec a =(kx,ky,...) ka =(kx,ky,...)

向量表示法

直线

一般用直线上一点 p p p和一个方向向量 v ⃗ \vec{v} v 确定: p ⃗ + v ⃗ \vec{p}+\vec{v} p +v

平面

一般用法向量 n ⃗ \vec{n} n 和平面上一点 p p p确定: { q ⃗ ∣ ( q ⃗ − p ⃗ ) ⋅ n ⃗ = 0 } \{ \vec{q}|(\vec{q}-\vec{p}) \cdot \vec{n}=0 \} {q (q p )n =0}

例题

例1

求两直线 p 1 ⃗ + v 1 ⃗ \vec{p_1}+\vec{v_1} p1 +v1 p 2 ⃗ + v 2 ⃗ \vec{p_2}+\vec{v_2} p2 +v2 的交点 o o o

:设 o ⃗ = p 2 + t v 2 ⃗ \vec o=p_2+t \vec{v_2} o =p2+tv2 ,又由于 v 1 ⃗ × ( p 2 + t v 2 ⃗ − p 1 ⃗ ) = 0 \vec{v_1} \times (p_2+t \vec{v_2}-\vec{p_1})=0 v1 ×(p2+tv2 p1 )=0,所以:

o ⃗ = p 2 ⃗ + v 1 ⃗ × ( p 1 ⃗ − p 2 ⃗ ) v 1 ⃗ × v 2 ⃗ v 2 ⃗ \vec{o}=\vec{p_2}+\frac{\vec{v_1} \times (\vec{p_1}-\vec{p_2})}{\vec{v_1} \times \vec{v_2}} \vec{v_2} o =p2 +v1 ×v2 v1 ×(p1 p2 )v2

例2

求点 Q Q Q到直线 p ⃗ + v ⃗ \vec{p}+\vec{v} p +v 的垂足 H H H

:设 H ⃗ = p ⃗ + t v ⃗ \vec H=\vec{p}+t\vec{v} H =p +tv ,然后有 ( Q ⃗ − p ⃗ − t v ⃗ ) ⋅ v ⃗ = 0 (\vec{Q}-\vec{p}-t\vec{v}) \cdot \vec{v}=0 (Q p tv )v =0,所以:

H ⃗ = p ⃗ + ( Q ⃗ − P ⃗ ) ⋅ v ⃗ ∣ v ⃗ ∣ 2 v ⃗ \vec{H}=\vec{p}+\frac{(\vec{Q}-\vec{P}) \cdot \vec{v}}{|\vec{v}|^2} \vec{v} H =p +v 2(Q P )v v

例3

求向量 v 1 ⃗ \vec{v_1} v1 和向量 v 2 ⃗ \vec{v_2} v2 尾部重合后角平分线的方向向量。

:将两个向量都缩放为单位向量,由于向量加法满足平行四边形法则,所以加起来即可。

例4

已知平面上三点,求这个平面的一个法向量。

:众所周知叉积是与这个向量都平行的向量,所以叉积一下即可。

例5

求点 Q Q Q到平面 ( p ⃗ , n ⃗ ) (\vec{p},\vec{n}) (p ,n )的距离。

:其实就是 P Q PQ PQ在法向量上的投影长度,也就是:

d = ( Q ⃗ − p ⃗ ) ⋅ n ⃗ ∣ n ⃗ ∣ d=\frac{(\vec{Q}-\vec{p}) \cdot \vec{n}}{|\vec{n}|} d=n (Q p )n

求两圆外公切线切点

	if(c1.r<c2.r) swap(c1,c2);
	point v=c2.o-c1.o;
	db d=dist(c1.o,c2.o),a1=atan2(v.y,v.x),a2=acos((c1.r-c2.r)/d);
	point k1=(point){c1.o.x+cos(a1+a2)*c1.r,c1.o.y+sin(a1+a2)*c1.r};
	point k2=(point){c2.o.x+cos(a1+a2)*c2.r,c2.o.y+sin(a1+a2)*c2.r};
	point k3=(point){c1.o.x+cos(a1-a2)*c1.r,c1.o.y+sin(a1-a2)*c1.r};
	point k4=(point){c2.o.x+cos(a1-a2)*c2.r,c2.o.y+sin(a1-a2)*c2.r};
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值