1.直线的两点式:
过两点(x1, y1), (x2, y2) 的直线方程为:
(y - y1) / (x - x1) = (y - y2) / (x - x2)
即 x(y1 - y2) + y(x2 - x1) + (x1*y2 - x2*y1) = 0
2.点到直线 L: Ax + By + C = 0 的距离为:
L的方向向量1 (1, -A/B ), 法向量2 ( A/B , 1)
由向量方法可简易求出 d = abs( 向量2 * 向量 / 向量2的模 )
//在直线上任取一点(x,y) 则 法向量2 * (x - x0, y - y0) / 法向量2的模
abs( A * x0 + B * y0 + C) / sqrt( A*A + B*B)
来自: http://www.pep.com.cn/gzsx/gxrz/200811/t20081107_526889.htm
3.点p 相对于 直线 Ax+By+C=0 的对称点 p2:
可利用两点的中点过直线, 且向量之积为 0 求出:
point duicheng(point p,beeline l)
{
point temp;
double d=(l.A*l.A+l.B*l.B);
temp.x=(l.B*l.B*p.x-2*l.A*l.B*p.y-l.A*l.A*p.x-2*l.A*l.C)/d;
temp.y=(l.A*l.A*p.y-2*l.A*l.B*p.x-l.B*l.B*p.y-2*l.B*l.C)/d;
return temp;
}
4. 两线段是否相交 : 判断一条线段是否在另一线段的同一侧, 然后反过来判断一次.
5.凸包 : 求n 个点的封闭多边形
穷举法 : 枚举 n * (n - 1) / 2 条边中每一条边是否为多边形的一条边(其余边都在其同一侧). 复杂度为 n^3
分治法:依照两端点 与 最远点构成的三角形划分集合.
步进法:首先找一个点,然后找一个点与其连线 与 水平线夹角为正且最作为第二个...然后找一个点 与其第二个点连线 与这条线夹角为正且最小........
6.同余性质:
若 a===b(m), x===y(m) 则:
a+-x === b+-y (m), ax === by (m) 特别地 a^n === b^n (m)
7.判断点在多边形内:
判断向量求出三角形面积都为正..
8.向量的点乘与叉乘
点乘: x1*x2+y1*y2 力做功: |a|*|b|*cos<a,b>
叉乘模为: x1*y2-x2*y1 三角形面积: |a|*|b|*sin<a,b>
9. 判断三点共线:三角形面积是否为 0
10. 判断点P是否在线段上:三角形面积为0,且线段两端点与P构成向量点积<=0
11. 判两线段相交,包括端点和部分重合
不相交情况:1.都在同一侧. 2. 共线时,一个端点在线段的内部.
12. 三角形:
半周长 P=(a+b+c)/2
面积 S=sqrt(P(P-a)(P-b)(P-c)) !!!
高线 Ha=bsin(C)=csin(B)=sqrt(b^2-((a^2+b^2-c^2)/(2a))^2)
//利用面公式 导出...
内切圆半径 r=S/P=asin(B/2)sin(C/2)/sin((B+C)/2)
=4Rsin(A/2)sin(B/2)sin(C/2)=sqrt((P-a)(P-b)(P-c)/P)
=Ptan(A/2)tan(B/2)tan(C/2)
外接圆半径 R=abc/(4S)=a/(2sin(A))=b/(2sin(B))=c/(2sin(C))
13.四边形
D1,D2为对角线,M对角线中点连线,A为对角线夹角
a^2+b^2+c^2+d^2=D1^2+D2^2+4M^2
S=D1D2sin(A)/2
(以下对圆的内接四边形)
ac+bd=D1D2
S=sqrt((P-a)(P-b)(P-c)(P-d)),P为半周长
14. 圆:
弧长 l=rA
弦长 a=2sqrt(2hr-h^2)=2rsin(A/2)
弓形高 h=r-sqrt(r^2-a^2/4)=r(1-cos(A/2))=atan(A/4)/2
扇形面积 S1=rl/2=r^2A/2
弓形面积 S2=(rl-a(r-h))/2=r^2(A-sin(A))/2
15.棱柱:
1. 体积 V=Ah,A为底面积,h为高
2. 侧面积 S=lp,l为棱长,p为直截面周长
3. 全面积 T=S+2A
16.棱锥:
1. 体积 V=Ah/3,A为底面积,h为高
(以下对正棱锥)
2. 侧面积 S=lp/2,l为斜高,p为底面周长
3. 全面积 T=S+A
17棱台:
1. 体积 V=(A1+A2+sqrt(A1A2))h/3,A1.A2为上下底面积,h为高
(以下为正棱台)
2. 侧面积 S=(p1+p2)l/2,p1.p2为上下底面周长,l为斜高
3. 全面积 T=S+A1+A2
圆柱:
1. 侧面积 S=2PIrh
2. 全面积 T=2PIr(h+r)
3. 体积 V=PIr^2h
圆锥:
1. 母线 l=sqrt(h^2+r^2)
2. 侧面积 S=PIrl
3. 全面积 T=PIr(l+r)
4. 体积 V=PIr^2h/3
圆台:
1. 母线 l=sqrt(h^2+(r1-r2)^2)
2. 侧面积 S=PI(r1+r2)l
3. 全面积 T=PIr1(l+r1)+PIr2(l+r2)
4. 体积 V=PI(r1^2+r2^2+r1r2)h/3
球:
1. 全面积 T=4PIr^2
2. 体积 V=4PIr^3/3
球台:
1. 侧面积 S=2PIrh
2. 全面积 T=PI(2rh+r1^2+r2^2)
3. 体积 V=PIh(3(r1^2+r2^2)+h^2)/6
球扇形:
1. 全面积 T=PIr(2h+r0),h为球冠高,r0为球冠底面半径
2. 体积 V=2PIr^2h/3