ImageVerifierCode 换一换
格式:DOCX , 页数:182 ,大小:150.34KB ,
资源ID:3199924      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/3199924.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(几何acm.docx)为本站会员(b****5)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

几何acm.docx

1、几何acm(1)几何公式【三角形】:1. 半周长 P=(a+b+c)/22. 面积 S=aHa/2=absin(C)/2=sqrt(P(P-a)(P-b)(P-c)3. 中线 Ma=sqrt(2(b2+c2)-a2)/2=sqrt(b2+c2+2bccos(A)/24. 角平分线 Ta=sqrt(bc(b+c)2-a2)/(b+c)=2bccos(A/2)/(b+c)5. 高线 Ha=bsin(C)=csin(B)=sqrt(b2-(a2+b2-c2)/(2a)2)6. 内切圆半径 r=S/P=asin(B/2)sin(C/2)/sin(B+C)/2) =4Rsin(A/2)sin(B/2)s

2、in(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. a2+b2+c2+d2=D12+D22+4M22. S=D1D2sin(A)/2(以下对圆的内接四边形)3. ac+bd=D1D24. S=sqrt(P-a)(P-b)(P-c)(P-d),P为半周长【正n边形】:R为外接圆半径,r为内切圆半径1. 中心角 A=2PI/n2. 内角 C=(n-2)PI/n3.

3、边长 a=2sqrt(R2-r2)=2Rsin(A/2)=2rtan(A/2)4. 面积 S=nar/2=nr2tan(A/2)=nR2sin(A)/2=na2/(4tan(A/2)【圆】:1. 弧长 L=rA2. 弦长 a=2sqrt(2hr-h2)=2rsin(A/2)3. 弓形高 h=r-sqrt(r2-a2/4)=r(1-cos(A/2)=atan(A/4)/24. 扇形面积 S1=rl/2=r2A/25. 弓形面积 S2=(rl-a(r-h)/2=r2(A-sin(A)/2【棱柱】:1. 体积 V=Ah,A为底面积,h为高2. 侧面积 S=lp,l为棱长,p为直截面周长3. 全面积

4、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=2PIrh2. 全面积 T=2PIr(h+r)3. 体积 V=PIr2h【圆锥】:1. 母线 L=sqrt(h2+r2)2. 侧面积 S=PIrl3. 全面积 T=PIr(L+r)4. 体积 V=

5、PIr2h/3【圆台】:1. 母线 L=sqrt(h2+(r1-r2)2)2. 侧面积 S=PI(r1+r2)L3. 全面积 T=PIr1(L+r1)+PIr2(L+r2)4. 体积 V=PI(r12+r22+r1r2)h/3【球】:1. 全面积 T=4PIr22. 体积 V=4PIr3/3【球台】:1. 侧面积 S=2PIrh2. 全面积 T=PI(2rh+r12+r22)3. 体积 V=PIh(3(r12+r22)+h2)/6【球扇形】:1. 全面积 T=PIr(2h+r0),h为球冠高,r0为球冠底面半径2. 体积 V=2PIr2h/3Euler的任意四面体体积公式(已知边长求体积) 已

6、知4点坐标求体积(其中四个点的坐标分别为(x1,y1,z1),(x2,y2,z2),(x3,y3,z3),(x4,y4,z4)注意事项:1. 注意舍入方式(0.5的舍入方向);防止输出-0.2. 几何题注意多测试不对称数据.3. 整数几何注意xmult和dmult是否会出界; 符点几何注意eps的使用.4. 避免使用斜率;注意除数是否会为0.5. 公式一定要化简后再代入.6. 判断同一个2*PI域内两角度差应该是 abs(a1-a2)pi+pi-beta; 相等应该是 abs(a1-a2)pi+pi-eps;7. 需要的话尽量使用atan2,注意:atan2(0,0)=0, atan2(1,0

7、)=pi/2,atan2(-1,0)=-pi/2,atan2(0,1)=0,atan2(0,-1)=pi.8. cross product = |u|*|v|*sin(a) dot product = |u|*|v|*cos(a)9. (P1-P0)x(P2-P0)结果的意义: 正: 在顺时针(0,pi)内 负: 在逆时针(0,pi)内 0 : ,共线,夹角为0或pi(2)ComputationalGeometry2008#include #include #include #include #include #include using namespace std;#define eps 1

8、e-6#define pi acos(-1)#define MaxNode 1000#define sqr(a) (a) * (a)#define IsZero(a) (fabs(a) eps)#define same(a, b) (fabs(a) - (b) (b) ? (a) : (b) #define min(a, b) (a) 0) #define triArea(a, b, c) (fabs(multi(a, b, c) / 2)#define PointInCircle2(p, c) (dis2(p, c.center) = c.r)#define dis2(a, b) sqrt(

9、sqr(a.x - b.x) + sqr(a.y - b.y)#define dis3(a, b) sqrt(sqr(a.x - b.x) + sqr(a.y - b.y) + sqr(a.z - b.z)#define multi(a, b, c) (double)b.x - a.x) * (c.y - a.y) - (double)c.x - a.x) * (b.y - a.y)struct point double x, y; point operator-(point &a) point b; b.x = x - a.x; b.y = y - a.y; return b; ;struc

10、t line double a, b, c;struct circle point center; double r;struct polygon int n; point pMaxNode;double polygonArea(polygon poly) /已知多边形各顶点的坐标,求其面积 double area = 0.0; int n = poly.n; for(int i = 1;i 0) return pi / 2; return pi * 3 / 2; else a = atan(b.y / b.x); if(b.x 0) a += pi; if(a 0) a += 2 * pi;

11、 return a; line lineFromSegment(point p1, point p2) /线段所在直线,返回直线方程的三个系统 line tmp; tmp.a = p2.y - p1.y; tmp.b = p1.x - p2.x; tmp.c = p2.x * p1.y - p1.x * p2.y; return tmp;int On_Segment(point p1, point p2, point p3) if(p1.x min(p2.x, p3.x) & p1.y min(p2.y, p3.y) return 1; return 0;int isIntersected(p

12、oint s1, point e1, point s2, point e2) int d1, d2, d3, d4; d1 = multi(s1, s2, e1); d2 = multi(s1, e1, e2); d3 = multi(s2, s1, e2); d4 = multi(s2, e2, e1); if(d1 * d2 0 & d3 * d4 0) return 1; if(d1 = 0 & On_Segment(s2, s1, e1) return 1; if(d2 = 0 & On_Segment(e2, s1, e1) return 1; if(d3 = 0 & On_Segment(s1, s2, e2) return 1; if(d4 = 0 & On_Segment(e1, s2, e2) return 1; return 0;int isIntersected

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1