gpt4 book ai didi

javascript - 在JS中围绕旋转对象旋转对象

转载 作者:行者123 更新时间:2023-11-30 16:04:39 25 4
gpt4 key购买 nike

我有一个小太阳系 Javascript 项目。我已经想出如何完美地围绕太阳旋转 SVG 对象,而不用担心 x 和 y 位置。 (我知道,行星以椭圆自转,不重要。)

这是它的代码。

 function rotate_point(pointX, pointY, originX, originY, ang) {
ang = ang * Math.PI / 180.0;
return {
x: Math.cos(ang) * (pointX-originX) - Math.sin(ang) * (pointY-originY) + originX ,
y: Math.sin(ang) * (pointX-originX) + Math.cos(ang) * (pointY-originY) + originY
};} // rotate_point

虽然我这辈子都无法让月球围绕地球旋转,这是因为地球本身在旋转并且无法足够准确地定位。我不是在一个完美的圆圈里,但它永远不会以地球的中心为轴旋转,所以它一直向一边凸出。我试过调整它的 x 和 y 位置、旋转速度,什么都没有。

谁能看出我完美绕地球旋转月球的代码有什么问题?

这是 fiddle :

https://jsfiddle.net/yf3sgsu5/

最佳答案

我认为您的问题是您在尝试进行月球自转之前移动了地球元素。所以当你做月球部分时,月球轨道的中心已经改变了。您会得到一个椭圆轨道,因为半径会根据地球是靠近还是远离月球而变化。

在移动地球之前,您要么需要读取地球的 cx,cy。或者您可以独立计算轨道位置(见下文)。

https://jsfiddle.net/yf3sgsu5/3/

关于javascript - 在JS中围绕旋转对象旋转对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37225949/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com