中华农历论坛知识讨论区历法知识 → 寿星万年历5.08(测试版)


  共有908512人关注过本帖树形打印

主题:寿星万年历5.08(测试版)

帅哥哟,离线,有人找我吗?
xjw01
  751楼 个性首页 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:蝙蝠侠 帖子:866 积分:3804 威望:3 精华:20 注册:2008/3/20 22:14:00
  发帖心情 Post By:2009/10/24 22:52:00

以下是引用浪-淘-沙在2009-10-24 21:36:00的发言:

许兄辛苦了。

现在的食界图非常漂亮,还会转动的(经+-,纬+-),想得很周到啊。

若可能,下一次可以增加放大功能,即把地球放大,只看一部分的地形。

 

还有,南极洲的地图没画上去。不知有没办法画上?

或者需要什么数据?我来一点一点量出来发送给你?

请把数据格式告诉我。

制作天文软件,总是要根坐标旋转打交道,这两天,转得有点晕。界线图计算及输出,要在赤道坐标、贝塞尔坐标、视图正投影坐标、最大食为中心的坐标,以及一些中间坐标(如直角坐标、各种交线起算的坐标)之间转来转去,搞得很麻烦。总希望能一步就转到位,可总是不顺意。


支持(0中立(0反对(0单帖管理 | 引用 | 回复 回到顶部
帅哥哟,离线,有人找我吗?
xiaojing
  752楼 个性首页 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:新手上路 帖子:5 积分:335 威望:0 精华:0 注册:2009/10/11 21:50:00
  发帖心情 Post By:2009/10/25 0:12:00

谢谢许老师能提供这么好的程序并且能公开代码,也谢谢浪-淘-沙兄的指点。

我主要还是想重现星像,其他的应用因需而定,解决的思路还是跟浪兄的相似。

目前只是业余兴趣,顺便通过这个课题学习一些知识,编程、天文学、数学等方面的知识,其实从许老师的贴子中也摸索到了正确的方向和方法,而且许老师还提供了代码,在下已经非常感谢了,不敢再打扰老师。未来如果有这方面的代码提供,在下密切关注。

支持(0中立(0反对(0单帖管理 | 引用 | 回复 回到顶部
帅哥哟,离线,有人找我吗?
浪-淘-沙
  753楼 个性首页 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:2068 积分:4263 威望:5 精华:4 注册:2008/11/13 21:03:00
  发帖心情 Post By:2009/10/25 3:11:00

以下是引用xjw01在2009-10-24 22:41:00的发言:

寿星地图的格式、作法:

 

 

寿星使用的地图坐标数据,实际上不是经纬度数据,而是图片的像素坐标,就像上面说到的(1999,999)

 

 

我当时没有精确的地图,所以用一个时区图,经度是线性的,纬度是非线性的,后来我对纬度做了一些放缩,不过还是不太准确。

 

简单的说,就是按经纬度顺序描点得坐标

这种描点法得到的地图,确实会出现非线性缩放的问题。

还有,我用的地图像素如果与你用的不是相同大小的,我描点得到的数据,可能无法直接使用。需要一个变换比例尺。

 

所以我在想,最好使用的经纬度坐标,不是像素坐标。

有了经纬度坐标,不管是什么地图,都可以按比例投影到画面上。

这样,不管将来的地图如何放大,边界上每个点的位置都是固定的。

 

地图有各种投影展开法。采用象素法,非线性问题有点难解决。


支持(0中立(0反对(0单帖管理 | 引用 | 回复 回到顶部
帅哥哟,离线,有人找我吗?
xjw01
  754楼 个性首页 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:蝙蝠侠 帖子:866 积分:3804 威望:3 精华:20 注册:2008/3/20 22:14:00
  发帖心情 Post By:2009/10/25 7:46:00

我用的是时区图,经度是线性的。纬度是非线性的。我上面讲的像素描点法,正是用像素坐标表示经纬度,二者是线性的比例关系。

 

如果你描点的点是经纬度数据,基本可以直接使用,只是一个起算点的问题,只需在vml.js程序中改动下面这个语句:

 

     J*=2*Math.PI/2009, W=Math.PI/2-W*Math.PI/970;

 

这句正是比例变换语句

 



支持(0中立(0反对(0单帖管理 | 引用 | 回复 回到顶部
帅哥哟,离线,有人找我吗?
春光
  755楼 个性首页 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:917 积分:7577 威望:10 精华:1 注册:2005/3/17 11:37:00
  发帖心情 Post By:2009/10/25 12:04:00

 

我知道许兄近日来为了日食南界和地图的算法忙得非常辛苦,常常忙到半夜。我以下这几点建议您可以在以后考虑一下是否增加。

本人对《寿星天文历》的“天象”部分有以下几点建议:

    1,增加水星凌日和金星凌日的时刻计算.
    凌日就是地内行星(水星,金星)在下合时(冲日)时,经过黄道面,即黄纬为0的时刻,也是一种交食现象.
    注意地内行星凌日和日食类似不是年年都有的.
  2,增加地外行星"大冲"计算,"大冲"就是在"冲"的基础上,地外行星离地球的距离最小的"冲",即对行星进行距离判断,取外行星距离地球最小的冲的时刻.
   3,增加外行星"东方照"和"西方照"时刻的计算.
     东方照就是外行星与太阳地心黄经相差为90度(月球的"东方照"就是月相中的"上弦").
     西方照就是外行星与太阳地心黄经相差为270度(月球的"西方照"就是月相中的"下弦").
    方照对于观测这些行星是非常有用的.
   方照也是《中国天文年历》上提供的。
 

支持(0中立(0反对(0单帖管理 | 引用 | 回复 回到顶部
帅哥哟,离线,有人找我吗?
浪-淘-沙
  756楼 个性首页 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:2068 积分:4263 威望:5 精华:4 注册:2008/11/13 21:03:00
  发帖心情 Post By:2009/10/25 14:42:00

以下是引用xjw01在2009-10-25 7:46:00的发言:

我用的是时区图,经度是线性的。纬度是非线性的。我上面讲的像素描点法,正是用像素坐标表示经纬度,二者是线性的比例关系。

 

如果你描点的点是经纬度数据,基本可以直接使用,只是一个起算点的问题,只需在vml.js程序中改动下面这个语句:

 

     J*=2*Math.PI/2009, W=Math.PI/2-W*Math.PI/970;

 

这句正是比例变换语句

 


对于南极地图,因为展开的面积比较小,且以南极点为中心对称的。

经线是直的,纬线正好是同心圆。

采用极坐标来描点,很容易得到边界的经纬度。

所以要得到经纬度数据还是比较容易的。

 

其它地方的经纬度数据,用描点法都会产生非线性变形的。(经线可能是弯的,纬线也可能不是同心圆)。


支持(0中立(0反对(0单帖管理 | 引用 | 回复 回到顶部
帅哥哟,离线,有人找我吗?
xjw01
  757楼 个性首页 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:蝙蝠侠 帖子:866 积分:3804 威望:3 精华:20 注册:2008/3/20 22:14:00
  发帖心情 Post By:2009/10/25 17:58:00

已发布v4.72版

1、增加食界图按指定的步长进行步进切换,以方便比较不同日食的区别。

2、修正食界连线的Bug,因切入时序的判别条件有错误,造成个别食界图连线失常

3、中心线、本影南北界线、半影南北界线使用椭圆求解,以提高精度,将来有更精确地图,就很有必要提高中心线及本影精度。(不过这里仍采用中精度星历)

4、南北界计算中加入地球自转速度(地表速度)对观测点的切点计算的影响

5、改正地表速度的一个Bug,原选对轻微超出地面的地方,地表速度置为0,后发现这样会造成速度场不连续,影响迭代计算,导至半影南北界在地球边缘时有轻微的不连续

 

到今天为止,日食计算基本完整。当然,还有一些计算过程的中间数据报表没有输出(比如中心线、南北界的各时刻位置数据表、日食根数表、最初切入点、影轴切入点数据等等),这些数据基时在计算过程中都已在内存中产生,但考虑到一般用户看不懂这些数据,暂不提供。

 


支持(0中立(0反对(0单帖管理 | 引用 | 回复 回到顶部
帅哥哟,离线,有人找我吗?
xjw01
  758楼 个性首页 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:蝙蝠侠 帖子:866 积分:3804 威望:3 精华:20 注册:2008/3/20 22:14:00
  发帖心情 Post By:2009/10/25 22:12:00

以下是引用春光在2009-10-25 12:04:00的发言:

 

我知道许兄近日来为了日食南界和地图的算法忙得非常辛苦,常常忙到半夜。我以下这几点建议您可以在以后考虑一下是否增加。

本人对《寿星天文历》的“天象”部分有以下几点建议:

    1,增加水星凌日和金星凌日的时刻计算.
    凌日就是地内行星(水星,金星)在下合时(冲日)时,经过黄道面,即黄纬为0的时刻,也是一种交食现象.
    注意地内行星凌日和日食类似不是年年都有的.
  2,增加地外行星"大冲"计算,"大冲"就是在"冲"的基础上,地外行星离地球的距离最小的"冲",即对行星进行距离判断,取外行星距离地球最小的冲的时刻.
   3,增加外行星"东方照"和"西方照"时刻的计算.
     东方照就是外行星与太阳地心黄经相差为90度(月球的"东方照"就是月相中的"上弦").
     西方照就是外行星与太阳地心黄经相差为270度(月球的"西方照"就是月相中的"下弦").
    方照对于观测这些行星是非常有用的.
   方照也是《中国天文年历》上提供的。
 

凌日等天象,确实很重要。不过得等有空的时候来编写。这几天一直在计算日月食。

 

日月食、凌日,一般需要图形来支持,一想到作图,就害怕,麻烦得不得了。


支持(0中立(0反对(0单帖管理 | 引用 | 回复 回到顶部
帅哥哟,离线,有人找我吗?
浪-淘-沙
  759楼 个性首页 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:2068 积分:4263 威望:5 精华:4 注册:2008/11/13 21:03:00
  发帖心情 Post By:2009/10/26 18:41:00

以下是引用xjw01在2009-10-24 22:41:00的发言:

寿星地图的格式、作法:

 

寿星使用的地图坐标数据,实际上不是经纬度数据,而是图片的像素坐标,就像上面说到的(1999,999)

 

数据格式:

澳洲是一块完整的图。假如澳洲折线坐标为(40,40),(40,50),(50,50),(50,40),(40,50),这五个坐标构成一个封闭的图形表示澳洲。其数据格式为:

m 40,40 l 40,50,50,50,50,40,40,50

字母m与字母l,不能与数字连在一起,应使用单个空格分开

简单的说,就是按经纬度顺序描点得坐标

 

省界图无需封闭,不然会发生边界重复,增加数据量,而且线连时也会对重复部分照画,如果重复的地放没有完全吻合,会变成一条粗线。

 

我利用AutoCAD描南极洲地图,东经为负数,西经为正数,南纬为负数。

利用ATAN2函数得到经度,再判断比较计算出正(西)、负(东)数的。

 

请许兄试着绘制到日食界限图中。

如果所需要格式不合要求,请提出改正方案。

 

南极有几个小岛,数据是单独的。

 

我不知道m l是如何加到数据中的,怕加错了,引起麻烦。请许兄自行添加。

按许兄前面的示范,可能要删除结尾的一个逗号。

也请许兄辛苦一下吧。

数据见打包文件。

 

其中一个小岛的数据:

161.341,-79.951,
161.681,-79.964,
162.48,-79.924,
163.639,-79.782,
164.451,-79.565,
164.724,-79.229,
164.359,-79,
163.63,-78.784,
162.835,-78.786,
162.338,-79.003,
162.145,-79.339,
161.443,-79.58,
160.835,-79.735,
160.8,-79.876,
161.341,-79.951,


 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:南极洲地图数据表6.txt


支持(0中立(0反对(0单帖管理 | 引用 | 回复 回到顶部
帅哥哟,离线,有人找我吗?
xjw01
  760楼 个性首页 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:蝙蝠侠 帖子:866 积分:3804 威望:3 精华:20 注册:2008/3/20 22:14:00
  发帖心情 Post By:2009/10/26 19:53:00

你的精度比我原来的高出十倍以上,我原来的差不多只有1度(最多只有0.5度)的精度,以致于我都没有动力制作精密的日食界线图。看来有必要做一个地图的放缩功能,以显示出更精密的日食情况。

 

我今天下乡检查工作刚回来,要连续下乡一星期,所以这星期不会很有空,今天回来看到这个数据表,一个惊喜。我以前,搞这个地图,花了好多时间,却搞不出一个象样的。浪版主是专业级的,谢谢。

 

等一下,我做一个地图数据接口附助程序,方便你加入新的数据,以便调试。


支持(0中立(0反对(0单帖管理 | 引用 | 回复 回到顶部

返回版面帖子列表

寿星万年历5.08(测试版)








签名