计算几何(二维),定理及证明(持续更新中..)

注:定理来自这篇博客,本文注重证明

向量基本运算

加法

向量 a ⃗ = ( x 1 , y 1 ) , b ⃗ = ( x 2 , y 2 ) \vec{a}=\left(x_1,y_1\right),\vec{b}=\left(x_2,y_2\right) a =(x1,y1),b =(x2,y2) a ⃗ + b ⃗ = ( x 1 + x 2 , y 1 + y 2 ) \vec{a}+\vec{b}=(x_1+x_2,y_1+y_2) a +b =(x1+x2,y1+y2)
向量在加法中可以理解为一种移动效果,所以向量加法可以理解为下图:
在这里插入图片描述

叉积

叉积的计算

向量 a ⃗ = ( x 1 , y 1 ) , b ⃗ = ( x 2 , y 2 ) \vec{a}=\left(x_1,y_1\right),\vec{b}=\left(x_2,y_2\right) a =(x1,y1),b =(x2,y2) a ⃗ × b ⃗ = x 1 y 2 − x 2 y 1 \vec{a}\times \vec{b}=x_1y_2-x_2y_1 a ×b =x1y2x2y1,证明如下:
首先,根据叉积的定义: a ⃗ × b ⃗ = ∣ a ⃗ ∣ ⋅ ∣ b ⃗ ∣ ⋅ sin ⁡ ( θ ) \vec{a}\times \vec{b}=\left|\vec{a}\right|\cdot|\vec{b}|\cdot \sin\left(\theta\right) a ×b =a b sin(θ) ∣ a ⃗ ∣ \left|\vec{a}\right| a 表示 a ⃗ \vec{a} a 的模长,也就是长度, θ \theta θ 表示从 a ⃗ \vec{a} a 旋转到 b ⃗ \vec{b} b 经过的角度,顺时针为正,逆时针为负)
定义 a r c t a n 2 ( x , y ) arctan2(x,y) arctan2(x,y) 表示从 ( 1 , 0 ) (1,0) (1,0) 顺时针旋转至 ( x , y ) (x,y) (x,y) 经过的角度(返回弧度,取值为 0 ∼ 2 π 0\sim 2\pi 02π
则原式可以表示为 x 1 2 + y 1 2 ⋅ x 2 2 + y 2 2 ⋅ sin ⁡ ( a r c t a n 2 ( x 2 , y 2 ) − a r c t a n 2 ( x 1 , y 1 ) ) \sqrt{x_1^2+y_1^2}\cdot\sqrt{x_2^2+y_2^2}\cdot\sin\left(arctan2\left(x_2,y_2\right)-arctan2(x_1,y_1)\right) x12+y12 x22+y22 sin(arctan2(x2,y2)arctan2(x1,y1))
根据 sin ⁡ ( a − b ) = sin ⁡ ( a ) cos ⁡ ( b ) − cos ⁡ ( a ) sin ⁡ ( b ) \sin(a-b)=\sin(a)\cos(b)-\cos(a)\sin(b) sin(ab)=sin(a)cos(b)cos(a)sin(b) 可得: 原式 = x 1 2 + y 1 2 ⋅ x 2 2 + y 2 2 ⋅ ( sin ⁡ ( a r c t a n 2 ( x 2 , y 2 ) ) cos ⁡ ( a r c t a n 2 ( x 1 , y 1 ) ) − cos ⁡ ( a r c t a n 2 ( x 2 , y 2 ) ) sin ⁡ ( a r c t a n 2 ( x 1 , y 1 ) ) ) 原式=\sqrt{x_1^2+y_1^2}\cdot\sqrt{x_2^2+y_2^2}\cdot\left(\sin(arctan2(x_2,y_2))\cos(arctan2(x_1,y_1))-\cos(arctan2(x_2,y_2))\sin(arctan2(x_1,y_1))\right) 原式=x12+y12 x22+y22 (sin(arctan2(x2,y2))cos(arctan2(x1,y1))cos(arctan2(x2,y2))sin(arctan2(x1,y1)))
由于每个表示为 ( x , y ) (x,y) (x,y) 的向量放到平面直角坐标系上后实际上为:
在这里插入图片描述
通过 a r c t a n 2 ( x 2 , y 2 ) arctan2(x_2,y_2) arctan2(x2,y2) 我们得到了 ∠ B A D \angle{BAD} BAD 所以 sin ⁡ ( a r c t a n 2 ( x 2 , y 2 ) ) = sin ⁡ ( ∠ B A D ) = B D A B = y x 2 + y 2 , cos ⁡ ( a r c t a n 2 ( x 2 , y 2 ) ) = cos ⁡ ( ∠ B A D ) = A D A B = x x 2 + y 2 \sin(arctan2(x_2,y_2))=\sin(\angle{BAD})=\frac{BD}{AB}=\frac{y}{\sqrt{x^2+y^2}},\cos(arctan2(x_2,y_2))=\cos(\angle{BAD})=\frac{AD}{AB}=\frac{x}{\sqrt{x^2+y^2}} sin(arctan2(x2,y2))=sin(BAD)=ABBD=x2+y2 y,cos(arctan2(x2,y2))=cos(BAD)=ABAD=x2+

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值