基础几何基本概念and公式and模板
一:基本概念
外心:三边中垂线交点,到三角形三个顶点的距离相等。
内心:角平分线的交点,到三角形三边的距离相等。
垂心:三条高线的交点。
重心:三条中线的交点,到三角形三顶点距离的平方和最小的点,三角形内到三边距离之积最大的点。
旁心:三角形的一条内角平分线与其他两个角的外角平分线的交点,旁心到三角形一边及其他两边延长线的距离相等。
二:几何公式
三角形:
1. 半周长 P=(a+b+c)/2
2. 面积S = a * h / 2 = a * b * sin(c)/2 = a * b * c / (4R) = a * b * c * r / 2
= sqrt(p * (p – a) * (p – b) * (p – c)) 海伦公式
R为外接圆半径,r为内切圆半径,p =(a+b+c)/2
3. 中线 Ma=sqrt(2(b^2+c^2)-a^2)/2=sqrt(b^2+c^2+2bccos(A))/2
4. 角平分线 Ta=sqrt(bc((b+c)^2-a^2))/(b+c)=2bccos(A/2)/(b+c)
5. 高线 Ha=bsin(C)=csin(B)=sqrt(b^2-((a^2+b^2-c^2)/(2a))^2)
6. 内切圆半径 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)
7. 外接圆半径 R=abc/(4S)=a/(2sin(A))=b/(2sin(B))=c/(2sin(C))
四边形:
D1,D2为对角线,M对角线中点连线,A为对角线夹角
1. a^2+b^2+c^2+d^2=D1^2+D2^2+4M^2
2. S=D1D2sin(A)/2
(以下对圆的内接四边形)
3. ac+bd=D1D2
4. S=sqrt((P-a)(P-b)(P-c)(P-d)),P为半周长
正n边形:
R为外接圆半径,r为内切圆半径
1. 中心角 A=2PI/n
2. 内角 C=(n-2)PI/n
3. 边长 a=2sqrt(R^2-r^2)=2Rsin(A/2)=2rtan(A/2)
4. 面积 S=nar/2=nr^2tan(A/2)=nR^2sin(A)/2=na^2/(4tan(A/2))
圆:
1. 弧长 l=rA
2. 弦长 a=2sqrt(2hr-h^2)=2rsin(A/2)
3. 弓形高 h=r-sqrt(r^2-a^2/4)=r(1-cos(A/2))=atan(A/4)/2
4. 扇形面积 S1=rl/2=r^2A/2
5. 弓形面积 S2=(rl-a(r-h))/2=r^2(A-sin(A))/2
棱柱:
1. 体积 V=Ah,A为底面积,h为高
2. 侧面积 S=lp,l为棱长,p为直截面周长
3. 全面积 T=S+2A
棱锥:
1. 体积 V=Ah/3,A为底面积,h为高
(以下对正棱锥)
2. 侧面积 S=lp/2,l为斜高,p为底面周长
3. 全面积 T=S+A
棱台:
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
任意多边形:
1. 面积:


二 几何模板
1.Point结构体
struct point
2 {
3 double x;
4 double y;
5 }
2.叉乘:
/*p0为公共点*/
2 double xmult(Point p1,Point p2,Point p0){
3 return (p1.x-p0.x)*(p2.y-p0.y)-(p2.x-p0.x)*(p1.y-p0.y);
4 }
3.两点距离:
double dis(point p1,point p2){
2 return sqrt((p1.x-p2.x)*(p1.x-p2.x)+(p1.y-p2.y)*(p1.y-p2.y));
3 }
4.Graham算法求凸包时点的排序cmp:
bool cmp(point a,point b)
2 {
3 if (CrossMul(a,b,p[1])>0 ||
4 (CrossMul(a,b,p[1])==0&&dis(a,p[1])
5.凸包:1)两点的最远距离2)面积3)周长
int main()
{int n,i,j,top;while (cin>>n){for (i=1; i<=n; i++){cin>>p[i].x>>p[i].y;if (p[i].y1 && CrossMul(q[top],p[i],q[top-1])<0) top--;q[++top]=p[i];}/*凸包直径*/int max=INT_MIN;for (int i=1;i<=top;i++)for (int j=1;jdis_2(q[i],q[j])?max:dis_2(q[i],q[j]);printf("%d\n",max);/*凸包面积*/int area=0;for (int i=2;i<=top;i++)area+=CrossMul(q[i],q[i+1],q[1]);printf("%d\n",abs(area));/*凸包周长*/double sum=dis(q[1],q[2]);for (i=3; i<=top; i++)sum+=dis(q[i],q[i-1]);sum+=dis(q[1],q[top]);printf("%d",sum);}return 0;
}
1、对任意点(x,y),绕一个坐标点(rx0,ry0)逆时针旋转a角度后的新的坐标设为(x0, y0),
有公式:
x0= (x - rx0)*cos(a) - (y - ry0)*sin(a) + rx0 ;
y0= (x - rx0)*sin(a) + (y - ry0)*cos(a) + ry0 ;
2、已知三点求三点形成的三角形的外接圆的圆心和半径
(x0,y0)为圆心坐标:
x0 = ((y3-y1)*(y2*y2-y1*y1+x2*x2-x1*x1)+(y2-y1)*(y1*y1-y3*y3+x1*x1-x3*x3))/(2*(x2-x1)*(y3-y1)-2*(x3-x1)*(y2-y1));
y0 = ((x3-x1)*(x2*x2-x1*x1+y2*y2-y1*y1)+(x2-x1)*(x1*x1-x3*x3+y1*y1-y3*y3))/(2*(y2-y1)*(x3-x1)-2 *(y3-y1)*(x2-x1));
r = sqrt((x0-x1)*(x0-x1)+(y0-y1)*(y0-y1));
(未完待续)
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
