这里会显示出您选择的修订版和当前版本之间的差别。
两侧同时换到之前的修订记录 前一修订版 后一修订版 | 前一修订版 | ||
2020-2021:teams:legal_string:王智彪:新计算几何总结 [2021/09/05 15:16] 王智彪 |
2020-2021:teams:legal_string:王智彪:新计算几何总结 [2021/09/10 21:25] (当前版本) 王智彪 |
||
---|---|---|---|
行 17: | 行 17: | ||
反三角函数有值域问题,比如 $acos(1.0000001)$ 会 $re$ 。 | 反三角函数有值域问题,比如 $acos(1.0000001)$ 会 $re$ 。 | ||
- | 有的时候判断两个角相等需要看 $fabs(a1-a2)<eps||fabs(a1-a2)>2.0*pi-eps$ ,应该是用atan2判断 $180$ 度的时候,两边会相差 $2×pi$ 但其实是一个角。 | + | 有的时候判断两个角相等需要看 $fabs(a1-a2)<eps||fabs(a1-a2)>2.0*pi-eps$ ,应该是用 $atan2$ 判断 $180$ 度的时候,两边会相差 $2×pi$ 但其实是一个角。 |
===== 2.关于 $atan2$ ===== | ===== 2.关于 $atan2$ ===== | ||
行 23: | 行 23: | ||
$atan2(0,0)=0,atan2(1,0)=pi/2,atan2(-1,0)=-pi/2,atan2(0,1)=0,atan2(0,-1)=pi$ | $atan2(0,0)=0,atan2(1,0)=pi/2,atan2(-1,0)=-pi/2,atan2(0,1)=0,atan2(0,-1)=pi$ | ||
- | 所以新学了个处理 $atan2$ 函数的手法: $double tmp=atan2(a1); if(sgn(tmp)<0) tmp+=2*pi;$ ,这样得到的角就是 $[0,2×pi)$ 的了。 | + | 所以新学了个处理 $atan2$ 函数的手法: $double\ tmp=atan2(a1);\ if(sgn(tmp)<0)\ tmp+=2*pi;$ ,这样得到的角就是 $[0,2×pi)$ 的了。 |
===== 3.关于叉积,总记不住 ===== | ===== 3.关于叉积,总记不住 ===== | ||
行 41: | 行 41: | ||
也有 $r={\frac {S} {P}}={\sqrt {{\frac {(P-a)(P-b)(P-c)} {P}}}}$ ,又因为 ${\frac r {P-a}}=tan({\frac A 2})$ ,全换了就有 $r=Ptan({\frac A 2})tan({\frac B 2})tan({\frac C 2})$ | 也有 $r={\frac {S} {P}}={\sqrt {{\frac {(P-a)(P-b)(P-c)} {P}}}}$ ,又因为 ${\frac r {P-a}}=tan({\frac A 2})$ ,全换了就有 $r=Ptan({\frac A 2})tan({\frac B 2})tan({\frac C 2})$ | ||
+ | 已知三角形三点坐标求三角形内切圆圆心:设 $AB=c,AC=b,BC=a,A(x_{1},y_{1},z_{1}),B(x_{2},y_{2},z_{2}),C(x_{3},y_{3},z_{3})$ ,则内切圆圆心为 $({\frac {(ax_{1}+bx_{2}+cx_{3})} {(a+b+c)}},{\frac {ay_{1}+by_{2}+cy_{3}} {(a+b+c)}},{\frac {(az_{1}+bz_{2}+cz_{3})} {(a+b+c)}})$ | ||
+ | |||
+ | |||
+ | ===== 5.关于四边形 ===== | ||
+ | |||
+ | 圆内接四边形的海伦公式:半周长为 $P$ ,四边形的四边长为 $a,b,c,d$ ,则四边形的面积为 ${\sqrt {(P-a)(P-b)(P-c)(P-d)}}$ | ||
+ | |||
+ | 托勒密定理:圆内接四边形对边乘积和等于对角线乘积。(大概是过一个点做边使得两对三角形相似,然后两个式子加起来就好了) | ||
+ | |||
+ | 对于任意四边形:我们设四条边长为 $a,b,c,d$ ,对角线长度为 $d_{1},d_{2}$ ,对角线中点的连线长度为 $M$ 。则有 $a^{2}+b^{2}+c^{2}+d^{2}=d_{1}^{2}+d_{2}^{2}+4M^{2}$ ,在一个三角形中做一条边的中线,然后有两条夹边的平方和等于二倍中线平方加底边平方的一半,然后反复套这个公式就好了。具体可以看这个链接: $http://m.1010jiajiao.com/czsx/shiti_id_416535c6bf26c87adf869805564d02b3$ 。 | ||
+ | |||
+ | 弓形面积:设半径为 $r$ ,角为 $A$ ,则这个弓形的面积为 ${\frac {r^{2}(A-sinA)} {2}}$ | ||
+ | |||
+ | |||
+ | |||
+ | ===== 6.关于圆 ===== | ||
+ | |||
+ | 已知四面体的四个点坐标求四面体内切圆圆心: ${\frac {(S_{abc}x_{4}+S_{abd}x_{3}+S_{acd}x_{2}+S_{bcd}x_{1})} {S_{sum}}}$ ,其余维坐标以此类推。 | ||
+ | |||
+ | |||
+ | |||
+ | ===== 7.棱台 ===== | ||
+ | |||
+ | 棱台体积: ${\frac {(S_{1}+S_{2}+{\sqrt {S_{1}S_{2}}})h} {3}}$ ,其中, $S_{1},S_{2}$ 表示上下底边, $h$ 表示棱台的高。 | ||
+ | |||
+ | ===== 8.圆锥 ===== | ||
+ | |||
+ | 已知圆锥表面积 $S$ ,求最大体积 $V$ ,二次函数搞一下,得到结果为 ${\frac {S} {12}}{\sqrt {\frac {2S} {\pi}}}$ | ||
+ | |||
+ | ===== 9.圆台 ===== | ||
+ | |||
+ | 圆台的体积: ${\frac {{\pi}(r_{1}^{2}+r_{2}^{2}+r_{1}r_{2})h} {3}}$ | ||
+ | |||
+ | ===== 10.球冠 ===== | ||
+ | |||
+ | 球冠的表面积:设球冠的高为 $H$ ,球的半径为 $R$ ,则球冠的表面积为 $2{\pi}RH$ 。 | ||
+ | |||
+ | 球冠的体积:参数同上,体积为 ${\frac {{\pi}H^{2}(3R-H)} {3}}$ 。 | ||
+ | |||
+ | ===== 11.球扇形 ===== | ||
+ | |||
+ | 当已知球半径和球冠部分的高时,参数同上,两部分加起来全约掉了,最后结果为 ${\frac {2{\pi}R^{2}H} {3}}$ 。表面积同理相加暴算即可,球冠部分搞定剩下就是底面圆周长乘总半径再对半就好了。 | ||
+ | |||
+ | ===== 12.球面距离 ===== | ||
+ | |||
+ | 给两个点的坐标,都在球面上,算出两个点的最短距离。算出两个点的夹角,然后走这个圆上的圆弧就行了。 |