原文链接
https://mp.weixin.qq.com/s/9zuXVqnIsRHOJM8fbgE0uw
先睹为快
在线体验网址:
https://charlespikachu.github.io/constellation/
效果如下:
导语
年关将近,上来多发几篇文章,显得这个公众号很活跃的样子应该没什么问题吧。
暑假去了上海天文馆,回来之后就一直想做个类似这样的东西,但各种事情拖来拖去就到年底了,本来想用python写这个天文馆的,但是发现写出来效果好丑,昨天就没推文,今天换js重写了一版,也算是给大家换换口味,毕竟不能吊死在python这一棵老树上。
废话不多说,让我们愉快的开始吧。
相关文件
https://github.com/CharlesPikachu/constellation
原理简介
要实现这个网站,首先要爬取自己需要的数据,网站链接在这:
http://uenosato.net/hr_diagram/hrdiagram3.html
整理好的数据截图如下:
完整的数据在infos.js这个文件里。接着定义一些三维旋转和矩阵运算中常用的一些操作,例如四元数的运算:
矩阵运算:
然后利用相关的公式把星星和星座的位置映射到三维球体上就好啦(这个具体原理其实我也不太懂T_T,毕竟不是干这行的,我看别人写的教程和code是这样做的,就依葫芦画瓢了):
大功告成,完整源代码详见相关文件~
现在网站只完成了一个基本的框架,后续我会添加更多内容,比如星座的详细介绍,以及一些有趣的小功能,欢迎大家持续关注。
更新效率大概和点赞和阅读量成正比。
参考文献
[1]. https://zhuanlan.zhihu.com/p/97186723
[2]. https://github.com/takasa5/michibiki
[3]. http://uenosato.net/hr_diagram/hrdiagram3.html
[4]. https://github.com/asSqr/Hipplanetarium