球面三角的相关计算

已知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

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

时间: 2024-08-10 19:14:18

球面三角的相关计算的相关文章

圆的相关计算

package 练习; import java.awt.BorderLayout;import java.awt.Color;import java.awt.Font; import javax.swing.JButton;import javax.swing.JFrame;import javax.swing.JLabel;import javax.swing.JPanel;import java.awt.GridLayout;import java.awt.TextArea;import j

mysql数据导出到excel以及相关计算

mysql 查询出数据之后, 可以选择导出文件 默认是csv文件  如果是整数类型的数据 可以CONCAT('\'', filed) 多加个'就可以变成文本了, 然后以文本编辑器打开csv文件 把'等字符替换为空字符串. 新建一个excel文件,找到数据-->自文本,选择下一步 格式为文本  确定即可 一些基本的excel函数: 计算某个字符或数字等的个数:=COUNTIF(A:A,"测试") 就是在A列的'测试'这个字符串出现的个数 根据身份证号计算性别:=IF(MOD(MID

二进制的原码、反码、补码及相关计算

1.二进制的最高位是符号位,0表示正数,1表示负数2.正数的原码.反码.补码都一样3.负数的反码=它原码符号位不变,其他位取反(0->1,1->0)4.负数的补码=它的反码+15.0的反码.补码.都是06.php没有无符号数,就是说php中的都是有符号的7.在计算机运算的时候都是以补码的方式来运行的 1 如: 2 以下实例都以4个字节举例说明 3 1 ---->原码 00000000 00000000 00000000 00000001 4 1 ---->反码 00000000 0

7.3 编址与存储相关计算

两个方面的内容:一方面是内存的编址方法,另外一方面就是磁带.光盘它的容量以及其它方面的一些计算.内存编址方法这一块有两个方面的内容是需要大家掌握的:第一方面是编址, 编址的概念:在计算机的系统当中,它的存储器有很多个存储空间,就如同我们去一个澡堂,它可能有储物柜,然后排列了很多很多的储物柜,它会对这个储物柜进行编号,从1号开始编一直编到100号或者是200号,如果说你不对这些储物柜进行编号,那么这些储物柜就无法利用起来.因为客人来了之后他不清楚自己是哪一个储物柜,所以不方便把东西放进来也不方便把

黑马程序员——java基础——负整数相关计算及其原因

-----------android培训.java培训.java学习型技术博客.期待与您交流!------------ 时间—— 2016年1月6日15:33:02 1.整数类取值范围及其分析? 我们知道整形的取值范围为-2^31-2^31-1,但是我就很纳闷为什么负数哪里没有减1,而整数这里却减1.在加上左边可以利用等差数列计算出来其最大值的确是2^31-1.可是我去计算负数的时候,纳闷了.我们知道正负数的符号位就是第三十一位,而往往符号位是不参与运算的.有些朋友可能会说,1000000000

【Learning】 多项式的相关计算

约定的记号 对于一个多项式\(A(x)\),若其最高次系数不为零的项是\(x^k\),则该多项式的次数为\(k\). 记为\(deg(A)=k\). 对于\(x\in(k,+ \infty)\),称\(x\)都为\(A(x)\)的次数界. 但一般地,我们都使用\(k+1\)作为\(A(x)\)的次数界. 多项式求逆 给定多项式\(A(x)\),求其在模\(x^n\)意义下的逆多项式\(B(x)\),使得 \[ \begin{equation} \label{eqn1} A(x)B(x)\equi

地图坐标相关计算

总结的一些地图坐标计算方法,包括: 地球坐标.百度坐标.火星坐标相互转换两点坐标距离计算根据坐标及半径求坐标范围(附近的XXX功能)package com.thon.commons.utils; import java.text.DecimalFormat; /** * @ClassName: MapUtil * @author: SuperZemo * @email: [email protected] * @Date 10/21/14 14:21 * @Description 地图工具类 *

BZOJ3684 大朋友和多叉树(多项式相关计算)

设$f(x)$为树的生成函数,即$x^i$的系数为根节点权值为$i$的树的个数.不难得出$f(x)=\sum_{k\in D}f(x)^k+x$我们要求这个多项式的第$n$项,由拉格朗日反演可得$[x^n]f(x)=\frac1n[x^{n-1}](\frac x{g(x)})^n$其中$[x^n]f(x)$表示$f(x)$的$n$次项系数.$f(x)$是$g(x)$的复合逆,即$g(f(x))=x$在本题中,$g(x)=x-\sum_{k\in D}x^k$我们需要多项式求逆和多项式快速幂.多

路由汇聚及其相关计算

路由汇聚的"含义"是把一组路由汇聚为一个单个的路由广播.路由汇聚的最终结果和最明显的好处是缩小网络上的路由表的尺寸. 主要计算方法是将个子网进行逻辑与运算,所得结果及为路由汇聚的地址. 例如:172.18.129.0/24.172.18.130.0/24.172.18.132.0/24和172.18.133.0/24,如果进行路由汇聚,所得地址是: 后面24表示网络号. 二进制表示四个IP地址为 IP地址 二进制表示 172.18.129.0 10101100.00010010.100