本篇旨在帮助开发人员回顾在2D图形编程中可能会涉及到的数学知识。
1. 矩形
矩形面积 S = 长 ∗ 宽 S = 长 * 宽 S=长∗宽
矩形周长 C = 2 ∗ ( 长 + 宽 ) C = 2 * ( 长 + 宽) C=2∗(长+宽)
2. 两点间的距离
在直角坐标系中,设两个点A、B以及坐标分别为 A ( x 1 , y 1 ) A(x1,y1) A(x1,y1) 、 B ( x 2 , y 2 ) B(x2,y2) B(x2,y2) ,则A和B两点之间的距离为:
∣ A B ∣ = ( x 1 − x 2 ) 2 + ( y 1 − y 2 ) 2 \left | AB \right |=\sqrt{ {(x1-x2)}^2 + {(y1-y2)}^2 } ∣AB∣=(x1−x2)2+(y1−y2)2
3. 圆
通常使用 r r r表示圆的半径;
圆的面积 S = π r 2 S = {\pi}r^2 S=πr2
圆的周长 C = 2 π r C = 2{\pi}r C=2πr
当圆心坐标为(0,0)时,圆的方程式为:
x 2 + y 2 = r 2 x^2 + y^2 = r^2 x2+y2=r2,表示的曲线是以O(0,0)为圆心,以r为半径的圆。
当圆心坐标不为(0,0)时,圆的方程式为:
( x − a ) 2 + ( y − b ) 2 = r 2 (x - a)^2 + (y - b)^2 = r^2 (x−a)2+(y−b)2=r2 表示的曲线是以O(a,b)为圆心,以r为半径的圆。
4. 弧度与角度
弧度是基于圆的半径的纯计量单位,当角度以弧度给出时,通常不写弧度单位,或有时记为rad
。
弧度是指在一个圆中,弧长和半径之比,即: ∣ 弧度 ∣ = 弧长 ÷ 半径 \left | 弧度 \right |=弧长\div半径 ∣弧度∣=弧长÷半径。
我们知道,一个圆的周长为 2 π r 2{\pi}r 2πr,所以可得一个圆的弧度为 2 π r r = 2 π \frac{2{\pi}r}{r}=2\pi r2πr=2π
已知一个圆的角度是 36 0 ∘ 360^{\circ} 360∘,所以 36 0 ∘ = = 2 π 360^{\circ}==2{\pi} 360∘==2π
由此可知二者转换关系为:
1 ∘ = π 180 r a d 1^{\circ} =\frac{\pi}{180} rad 1∘=180πrad
1 r a d = ( 180 π ) ∘ 1 rad = (\frac{180}{\pi})^{\circ} 1rad=(π180)∘
5. 三角形
若三角形的三边分别为a,b,c,其中c为底边,高为h,三角分别为A( α \alpha α),B( β \beta β),C( γ \gamma γ),如下图所示,在△ABC中
面积 S = 1 2 c h S = \frac{1}{2} ch S=21ch
周长 C = a + b + c C = a + b + c C=a+b+c
三角形的三个角相加永远是 18 0 ∘ 180^{\circ} 180∘,即 α + β + γ = 18 0 ∘ \alpha+\beta+\gamma=180^{\circ} α+β+γ=180∘,因此等边三角形的每个角都是 6 0 ∘ 60^{\circ} 60∘
5.1 正弦/余弦/正切
正弦、余弦和正切是基于直角三角形而建立的。
sin ( θ ) = 对边 斜边 \sin(\theta)=\frac{对边}{斜边} sin(θ)=斜边对边
cos ( θ ) = 邻边 斜边 \cos(\theta)=\frac{邻边}{斜边} cos(θ)=斜边邻边
tan ( θ ) = 对边 邻边 \tan(\theta)=\frac{对边}{邻边} tan(θ)=邻边对边
cot ( θ ) = 邻边 对边 \cot(\theta)=\frac{邻边}{对边} cot(θ)=对边邻边
5.2 余弦定理
对于任意三角形,任何一边的平方等于其他两边平方的和减去这两边与它们夹角的余弦的积的两倍。
c 2 = a 2 + b 2 − 2 a b cos γ c^2 = a^2 + b^2 - 2ab\cos\gamma c2=a2+b2−2abcosγ
5.3 勾股定理
直角三角形的两条直角边的长度的平方和等于斜边长的平方。
c 2 = a 2 + b 2 c^2=a^2+b^2 c2=a2+b2
已知 cos ( 9 0 ∘ ) = 0 \cos(90^{\circ})=0 cos(90∘)=0,结合余弦定理,可以知道勾股定理是余弦定理的特定情况。
6. 正弦曲线
水平方向和垂直方向同时做正弦运动,就得到了圆周运动。
标准的正弦曲线函数是 y = sin ( x ) y=\sin(x) y=sin(x) ,下图是一个标准的正弦曲线:
与正弦曲线相关的概念有:
6.1 周期
周期:从一个顶点到另一个顶点的距离,标准正弦曲线的周期是 2 π 2\pi 2π
6.2 振幅
振幅:从中线(X轴)到顶点的距离,如上图所示。
6.3 相移
相移:曲线的左右平移,如下图所示。
6.4 垂直位移
垂直位移:曲线的上下平移,如下图所示。
6.5 伸缩变换
下图分别绘制了 y = sin ( x ) y=\sin(x) y=sin(x)、 y = sin ( 1 2 x ) y=\sin(\frac{1}{2}x) y=sin(21x)、 y = sin ( 2 x ) y=\sin(2x) y=sin(2x)的图像。
从上图可知, x x x 所乘以的系数对应曲线周期缩小的倍数。
6.6 平移变换
正弦曲线的平移变换遵循“左加右减,上加下减”的规则。
实例
下图展示了从 y = sin ( 2 x ) y=\sin(2x) y=sin(2x) 变换到 y = sin ( 2 x + π 3 ) − 1 y=\sin(2x+\frac{\pi}{3})-1 y=sin(2x+3π)−1 的过程。
6.7 综合变换
正弦曲线可表示为 y = A sin ( ω x + φ ) + k y=A\sin({\omega}x+\varphi)+k y=Asin(ωx+φ)+k
下图演示了从 y = sin ( x ) y=\sin(x) y=sin(x) 变换到 y = 2 sin ( 2 x + π 4 ) + 1 y=2\sin(2x+\frac{\pi}{4})+1 y=2sin(2x+4π)+1 的过程。
7. 椭圆
椭圆(Ellipse)是平面内到定点F1、F2的距离之和等于常数(大于 ∣ F 1 F 2 ∣ |F1F2| ∣F1F2∣)的动点P的轨迹,F1、F2称为椭圆的两个焦点。
其数学表达式为:
∣ P F 1 ∣ + ∣ P F 2 ∣ = 2 a |PF1|+|PF2|=2a ∣PF1∣+∣PF2∣=2a
两焦点F1、F2的距离 ∣ F 1 F 2 ∣ = 2 c |F1F2| = 2c ∣F1F2∣=2c
7.1 椭圆方程式
我们始终用 a a a表示长半轴,用 b b b表示短半轴,即上图的焦点在X轴时, a a a位于X轴,若焦点在Y轴则 a a a位于Y轴。
当两个焦点在X轴时,标准方程为: x 2 a 2 + y 2 b 2 = 1 \frac{x^2}{a^2} + \frac{y^2}{b^2} = 1 a2x2+b2y2=1
当两个焦点在Y轴时,标准方程为: y 2 a 2 + x 2 b 2 = 1 \frac{y^2}{a^2} + \frac{x^2}{b^2} = 1 a2y2+b2x2=1
7.2 椭圆面积
椭圆面积 S = π a b S = \pi ab S=πab
7.3 相关公式
b 2 = a 2 − c 2 b^2 = a^2 - c^2 b2=a2−c2
证明如下:
由两点间的距离公式可得:
∣ P F 1 ∣ = ( x + c ) 2 + y 2 |PF1| = \sqrt{(x+c)^2+y^2} ∣PF1∣=(x+c)2+y2
∣ P F 2 ∣ = ( x − c ) 2 + y 2 |PF2| = \sqrt{(x-c)^2+y^2} ∣PF2∣=(x−c)2+y2
又因为 ∣ P F 1 ∣ + ∣ P F 2 ∣ = 2 a |PF1|+|PF2|=2a ∣PF1∣+∣PF2∣=2a,即:
( x + c ) 2 + y 2 + ( x − c ) 2 + y 2 = 2 a \sqrt{(x+c)^2+y^2}+\sqrt{(x-c)^2+y^2}=2a (x+c)2+y2+(x−c)2+y2=2a
表达式化简后:
( x + c ) 2 + y 2 = 2 a − ( x − c ) 2 + y 2 \sqrt{(x+c)^2+y^2}=2a-\sqrt{(x-c)^2+y^2} (x+c)2+y2=2a−(x−c)2+y2
( x + c ) 2 + y 2 = ( 2 a − ( x − c ) 2 + y 2 ) 2 (x+c)^2+y^2=(2a-\sqrt{(x-c)^2+y^2})^2 (x+c)2+y2=(2a−(x−c)2+y2)2
继续展开和化简,最终可得:
x 2 a 2 + y 2 a 2 − c 2 = 1 \frac{x^2}{a^2} + \frac{y^2}{a^2-c^2}=1 a2x2+a2−c2y2=1
参考椭圆的公式可得:
b 2 = a 2 − c 2 b^2 = a^2 - c^2 b2=a2−c2
7.4 椭圆上任意角度点的坐标
上图焦点位于X轴,由椭圆方程式可得:
x 2 a 2 + y 2 b 2 = 1 \frac{x^2}{a^2}+\frac{y^2}{b^2}=1 a2x2+b2y2=1
由正切函数可得: y = x tan ( θ ) y=x\tan(\theta) y=xtan(θ)
将 y y y 代入上面表达式可得:
x 2 a 2 + ( x tan ( θ ) ) 2 b 2 = 1 \frac{x^2}{a^2}+\frac{(x\tan(\theta))^2}{b^2}=1 a2x2+b2(xtan(θ))2=1
最终求得:
x 2 = a 2 b 2 b 2 + a 2 ( tan θ ) 2 x^2=\frac{a^2b^2}{b^2+a^2(\tan\theta)^2} x2=b2+a2(tanθ)2a2b2
x x x 可以为正/负值,需要根据角度决定正负。
本文最初发布在我的个人站点,也将优先更新在个人站点上。
https://jiangxueqiao.com