计算几何

二维空间中的计算几何

点积

A A A B B B所在方向的投影的模长和 B B B的模长的乘积
A ⋅ B = ∣ A ∣ ∣ B ∣ cos ⁡ ( A , B ) = X A X B + Y A Y B A\cdot B=|A||B|\cos(A,B)=X_AX_B+Y_AY_B AB=ABcos(A,B)=XAXB+YAYB
可用于判断两向量是否垂直

有交换律

标量

叉积

A A A转到 B B B所夹平行四边形的有向面积

A × B = ∣ A ∣ ∣ B ∣ sin ⁡ ( A , B ) = X A Y B − X B Y A A\times B=|A||B|\sin(A,B)=X_AY_B-X_BY_A A×B=ABsin(A,B)=XAYBXBYA

没有交换律

是个向量,但方向垂直于两向量所在平面

求任意多边形的面积


将每对相邻的点与源点相连产生的三角形的有向面积求和

S = ∑ i = 1 n P i × P i + 1 2 S=\sum_{i=1}^{n}\frac{P_i\times P_{i+1}}{2} S=i=1n2Pi×Pi+1
P n + 1 = P 1 P_{n+1}=P_1 Pn+1=P1

自适应辛普森公式

用二次函数进行拟合

∫ A B f ( x ) d x = f ( A ) + 4 × f ( A + B 2 ) + f ( B ) 6 × ( B − A ) \int_{A}^{B}f(x)dx=\frac{f(A)+4\times f(\frac{A+B}{2})+f(B)}{6}\times(B-A) ABf(x)dx=6f(A)+4×f(2A+B)+f(B)×(BA)
f ( x ) = a x 2 + b x + c f(x)=ax^2+bx+c f(x)=ax2+bx+c

∫ A B f ( x ) d x = F ( B ) − F ( A ) \int_{A}^{B}f(x)dx=F(B)-F(A) ABf(x)dx=F(B)F(A)
F ( x ) = a 3 x 3 + b 2 x 2 + c x F(x)=\frac{a}{3}x^3+\frac{b}{2}x^2+cx F(x)=3ax3+2bx2+cx
f ( A ) + 4 × f ( A + B 2 ) + f ( B ) 6 × ( B − A ) \frac{f(A)+4\times f(\frac{A+B}{2})+f(B)}{6}\times(B-A) 6f(A)+4×f(2A+B)+f(B)×(BA)
= 1 6 × ( a A 2 + b A + c + a B 2 + b B + c + a ( A + B ) 2 + 2 × b ( A + B ) + 4 × c ) × ( B − A ) =\frac{1}{6}\times(aA^2+bA+c+aB^2+bB+c+a(A+B)^2+2\times b(A+B)+4\times c)\times (B-A) =61×(aA2+bA+c+aB2+bB+c+a(A+B)2+2×b(A+B)+4×c)×(BA)
= 1 6 × ( 2 × a ( A 2 + A B + B 2 ) + 3 × b ( A + B ) + 6 × c ) × ( B − A ) =\frac{1}{6}\times(2\times a(A^2+AB+B^2)+3\times b(A+B)+6\times c)\times(B-A) =61×(2×a(A2+AB+B2)+3×b(A+B)+6×c)×(BA)
= a 3 × ( B 3 − A 3 ) + b 2 × ( B 2 − A 2 ) + c × ( B − A ) =\frac{a}{3}\times (B^3-A^3)+\frac{b}{2}\times (B^2-A^2)+c\times(B-A) =3a×(B3A3)+2b×(B2A2)+c×(BA)
= F ( B ) − F ( A ) =F(B)-F(A) =F(B)F(A)


切点

( C p o s − P p o s ) 2 = C r 2 + ( x − P p o s ) 2 + C r 2 − ( C p o s − x ) 2 (C_{pos}-P_{pos})^2=C_r^2+(x-P_{pos})^2+C_r^2-(C_{pos}-x)^2 (CposPpos)2=Cr2+(xPpos)2+Cr2(Cposx)2
= 2 × C r 2 + x 2 − 2 x P p o s + P p o s 2 − ( C p o s 2 − 2 x C p o s + x 2 ) =2\times C_r^2+x^2-2xP_{pos}+P_{pos}^2-(C_{pos}^2-2xC_{pos}+x^2) =2×Cr2+x22xPpos+Ppos2(Cpos22xCpos+x2)
C p o s 2 + P p o s 2 − 2 C p o s P p o s = 2 × C r 2 + 2 x ( C p o s − P p o s ) + P p o s 2 − C p o s 2 C_{pos}^2+P_{pos}^2-2C_{pos}P_{pos}=2\times C_r^2+2x(C_{pos}-P_{pos})+P_{pos}^2-C_{pos}^2 Cpos2+Ppos22CposPpos=2×Cr2+2x(CposPpos)+Ppos2Cpos2
C p o s 2 − C p o s P p o s − C r 2 = x ( C p o s − P p o s ) C_{pos}^2-C_{pos}P_{pos}-C_r^2=x(C_{pos}-P_{pos}) Cpos2CposPposCr2=x(CposPpos)
x = C p o s 2 − C p o s P p o s − C r 2 C p o s − P p o s x=\frac{C_{pos}^2-C_{pos}P_{pos}-C_r^2}{C_{pos}-P_{pos}} x=CposPposCpos2CposPposCr2
c{C_{pos}2-C_{pos}P_{pos}-C_r2}{C_{pos}-P_{pos}}$

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值