计算重要天文坐标系之间的转换(C#)
来源:互联网 发布:现在流行的网络用词 编辑:程序博客网 时间:2024/05/17 02:28
用了一个多月的时间研究天文坐标系之间的坐标转换,虽然最终项目不得不砍掉与之相关的功能(因为某些原因),但是对于使用计算机模拟宇宙中天体坐标系的相互转换还是有一些非常重要的成果值得分享,希望对从事虚拟现实且开发与太阳系天体运动有关的工作人员有所帮助。
1.天体坐标系基础知识(翻墙所得)
2.C#源码实现
using UnityEngine;using System.Collections;using UnityEngine.UI;/*该脚本实现从地平坐标系转换到赤道坐标系在转换到黄道坐标系【存在问题】 */public class CoordinatesTransform : MonoBehaviour {private float PI;//π值private float HCJJ = (float)(23 + 26 / 60 + (20.512 / 60)/60);//黄赤交角//***********************************************public float A=0;//代表方位角(不能用度数**需除以180度乘以PI)【0~360】public float α=0;//代表高度角(不能用度数**需除以180度乘以PI)【-90~+90】private float φ=39.62f;//代表观测者所在纬度(不能用度数**需除以180度乘以PI)private float H;//时角private float sinH=0;//时角正弦值private float cosH=0;//时角余弦值private float sinδ=0;//赤纬正弦值private float cosδ=0;//赤纬余弦值private float cosδcosH=0;private float cosδsinH=0;private float ChiJing=0;//赤经//***********************************************private float sinHuangWei=0;//黄纬正弦值private float cosHuangJingcosHuangWei=0;private float sinHuangJingcosHuangWei=0;private Vector3 HD_POS;//在黄道坐标系中摄像机方向向量void Start () {PI = Mathf.PI;}void Update () {//从地平坐标系转换到赤道坐标系sinδ = Mathf.Sin (φ / 180 * PI) * Mathf.Sin (α / 180 * PI)+ Mathf.Cos (φ / 180 * PI) * Mathf.Cos (α / 180 * PI) * Mathf.Cos (A / 180 * PI);cosδcosH = Mathf.Cos (φ / 180 * PI) * Mathf.Sin (α / 180 * PI)- Mathf.Sin (φ / 180 * PI) * Mathf.Cos (α / 180 * PI) * Mathf.Cos (A / 180 * PI);cosδsinH = -Mathf.Sin (A / 180 * PI) * Mathf.Cos (α / 180 * PI);//计算整理需要的变量值cosδ = Mathf.Sqrt(1 - sinδ * sinδ);//可以直接开根号cosH = cosδcosH / cosδ;sinH = cosδsinH / cosδ;H = Mathf.Atan2 (sinH, cosH);//返回一个值【时角】范围-pi~+pi,应该是0~2PIChiJing =9.30f - H;//求赤经(这里有一个值【地方恒星时】需要从网页中读取)//赤道坐标转到黄道坐标sinHuangWei = Mathf.Cos (HCJJ / 180 * PI) * sinδ - Mathf.Sin(ChiJing) * cosδ * Mathf.Sin (HCJJ / 180 * PI);cosHuangJingcosHuangWei = Mathf.Cos(ChiJing) * cosδ;sinHuangJingcosHuangWei = Mathf.Sin (HCJJ / 180 * PI) * sinδ + Mathf.Sin(ChiJing) * cosδ * Mathf.Cos (HCJJ / 180 * PI);//获取黄道坐标系点坐标HD_POS.x = cosHuangJingcosHuangWei;HD_POS.y = sinHuangJingcosHuangWei;HD_POS.z = sinHuangWei;Camera.main.transform.LookAt (HD_POS);}}
0 0
- 计算重要天文坐标系之间的转换(C#)
- 坐标系之间的转换
- OpenGL坐标系之间的转换
- 不同坐标系之间的转换
- c++UTM地理坐标系与WGS84地理坐标系之间的转换
- 关于坐标系转换与点在坐标系之间的转换
- 关于不同坐标系之间的坐标转换(札记)
- 国内地图坐标系介绍及常见地图(百度、高德、凯立德)之间的坐标系转换
- 国内地图坐标系介绍及常见地图(百度、高德、凯立德)之间的坐标系转换
- 计算机视觉:相机成像原理:世界坐标系、相机坐标系、图像坐标系、像素坐标系之间的转换
- 计算机视觉:相机成像原理:世界坐标系、相机坐标系、图像坐标系、像素坐标系之间的转换
- 计算机视觉:相机成像原理:世界坐标系、相机坐标系、图像坐标系、像素坐标系之间的转换
- 计算机视觉:相机成像原理:世界坐标系、相机坐标系、图像坐标系、像素坐标系之间的转换
- 计算机视觉:相机成像原理:世界坐标系、相机坐标系、图像坐标系、像素坐标系之间的转换
- IOS地图坐标系之间转换的算法
- 摄像头与imu之间的坐标系转换
- Ogre坐标系,向量之间的转换
- C语言基础 输入直角坐标系上的两个点,计算它们的之间的距离
- 企业网站的可信度高低直接影响着网站的效果
- 《Windows程序设计》读书笔四 文本输出
- Tomcat The JRE_HOME environment variable is not defined correctly
- 字节输出流
- 机器学习--线性回归
- 计算重要天文坐标系之间的转换(C#)
- iOS开发-自定义专属相册 (详细)| 干货
- rss订阅
- jni运行错误 symbol lookup error
- 伪元素(3)-解决IE6/IE7/IE8不支持before,after问题
- 存储过程重新编译一直卡死
- Android jni 资源引用报错
- iOS中NSLog输出格式大全
- 启动tomcat 服务报 The file is absent or does not have execute permission