码迷,mamicode.com
首页 > 其他好文 > 详细

球面三角的相关计算

时间:2020-03-27 19:48:37      阅读:137      评论:0      收藏:0      [点我收藏+]

标签:一半   triangle   The   world   isp   余弦定理   php   idt   mamicode   

已知3个球心角(A0、B0、C0)及球体半径R,计算:球面三角的角度(A、B、C)、球面三角的面积、以及球角锥的体积

(涉及角度均为弧度制)

 

1、计算球面三角形的边长a、b、c:

  a = A0*R; (弧长=弧度*球半径)

  b = B0*R; 

  c = C0*R;

2、计算球面角:

  (1)方法一:基于余弦定理求解:

       技术图片

  故,A = acos( (cosa-cosbcosc)/(sinbsinc)),同理可计算球面角B和C

       (2)方法二,也可有正弦公式求得

技术图片

3、计算球面超(spherical excess):

      E=A+B+C-Pi   (球面三角的内角和减去普通三角的内角和)

球面超的另外一种算法:

技术图片

 其中,a、b、c为球面三角的边长,s为周长的一半(s = 0.5*(a+b+c))。

 

4、球面三角面积:

     S = E*R^2

5、球角锥体积:

     V = S*R/3

 

  #===================================

以三个直角的球面角特例进行验证计算

Matlab程序如下:

 

clc;clear


A0 = pi/2; B0 = pi/2; C0 = pi/2; 
d = 1; % set diameter of sphere as 1.0
r=d/2;


a = A0*r; b = B0*r; c = C0*r;
s = (a+b+c)/2;


% The 1st method for calculation of Spherical Angle
cosA1 = (cos(a/r)-cos(b/r)*cos(c/r))/(sin(b/r)*sin(c/r));
A1 = acos(cosA1);
disp("Spherical Angle 1:");
disp(A1);
% The 2nd method for calculation of Spherical Angle
sinA2 = (sin((s-b)/r)*sin((s-c)/r)/sin(b/r)/sin(c/r))^0.5;
A2 = asin(sinA2)*2;
disp("Spherical Angle 2:");
disp(A2)
% The 1st method for the calculation of Spherical Excess
E1 = A1*3-pi;
disp("Spherical Excess 1:");
disp(E1);
% The 2nd method for the calculation of Spherical Excess
temp = tan(0.5*s/r) * tan(0.5*(s-a)/r) * tan(0.5*(s-b)/r) * tan(0.5*(s-c)/r);
temp = temp^0.5;
E2 =atan(temp)*4;
disp("Spherical Excess 2:");
disp(E2);
%Surface area of the Spherical Triangle:
SurfArea = E2*r^2;
disp("Surface area of the Spherical Triangle:");
disp(SurfArea);
%Volume of the Spherical Pyramid
VsphPyramid = SurfArea*r/3;
disp("Volume of the Spherical Pyramid:");
disp(VsphPyramid);

 

 

技术图片

 

 注:上图中“球面积为4piR^2,其1/8应为piR2/2”。

 

 

参考资料:

1. https://mathworld.wolfram.com/SphericalTrigonometry.html

2. https://mathworld.wolfram.com/SphericalExcess.html

3. https://mathworld.wolfram.com/SphericalTriangle.html

4. https://baike.baidu.com/item/%E7%90%83%E9%9D%A2%E4%B8%89%E8%A7%92%E5%AD%A6/1307052?fr=aladdin

球面三角的相关计算

标签:一半   triangle   The   world   isp   余弦定理   php   idt   mamicode   

原文地址:https://www.cnblogs.com/ywu24/p/12583862.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!