月相与节点js中的svg图形

问题描述 投票:2回答:1

我正在寻找方法/ npm包,它可以实现:

  1. 月相
  2. SVG或月相的任何图形表示
  3. 该日期的照明

我尝试过:suncalc但是在这个包中SunCalc.getMoonIllumination()满足照明和阶段,但从相位说如果它是满月或不是很棘手。它没有图形表示。

javascript node.js astronomy
1个回答
3
投票

我不认为有SVG附带的软件包,因此您需要自己提供/生成这些软件包。

至于让SunCalc给你一个很好的数字,实际上坐在qazxsw poi,qazxsw poi,qazxsw poi或qazxsw poi上的阶段,最简单的是做一些舍入:

如果您想直接舍入到这些数字,您可以舍入到最近的四分之一:

0

或者(正如你在评论中指出的那样)如果你想让它仍然通过打蜡/减弱部分并坚持到满月/新月/季度大约一天,你可以四舍五入到最近的第28个:

0.25

Why does this work? and why 28?

因此,最简单的解释方法是再次查看季度示例。我们希望舍入数字与其中一个选项(0.5)相匹配。

因为0.75舍入到最接近的整数,我们希望这些结果成为整数,我们可以舍入到。通过将它们乘以4,我们得到:

var date = new Date();
Math.round(SunCalc.getMoonIllumination(date).phase * 4) / 4;

我们在这些之间得到的一切最终都会转向其中一个(除了一些圆到5,我们需要自己缠绕)。

然后我们将结果除以相同的乘数,以使数字回到预期范围内。

现在28个作品因为两个原因:

  1. 4是因子28.所以有些数字会以.25的倍数返回
  2. 因为它接近月球周期的长度(~29.53)

这意味着我们最终将结果四舍五入到每个值大约一天

© www.soinside.com 2019 - 2024. All rights reserved.