如何在javascript中制作圆周运动

时间:2016-02-27 16:59:52

标签: javascript khan-academy

我正在尝试使用javascript创建太阳系,而我正在使用可汗学院来制作它,但是我知道如何使它们围绕太阳旋转一圈 我一直在网上浏览几个小时,但我找不到任何东西。这是我的项目,这样你就可以看到我做了什么,你能做些什么

https://www.khanacademy.org/computer-programming/solar-system/6120244512161792

3 个答案:

答案 0 :(得分:4)

只是为了让你开始:

x = 100  // center
y = 50   // center
r = 50   // radius
a = 0    // angle (from 0 to Math.PI * 2)

function rotate(a) {
  
  var px = x + r * Math.cos(a); // <-- that's the maths you need
  var py = y + r * Math.sin(a);
  
  document.querySelector('#point').style.left = px + "px";
  document.querySelector('#point').style.top = py + "px";  
}


setInterval(function() {
  a = (a + Math.PI / 360) % (Math.PI * 2);
  rotate(a);
}, 5);
div {
  position: fixed;
  width: 10px;
  height: 10px;
}

#center {
  left: 100px;
  top: 50px;
  background: black;
}

#point {
  left: 0px;
  top: 0px;
  background: red;
}
<div id="center"></div>
<div id="point"></div>

答案 1 :(得分:0)

参观可汗学院的其他动画课程。 draw()函数会自动重复运行以创建动画。

因此,您需要更改draw()函数中的值以使某些内容移动。首先,您可能希望查看equations of a circle并对此做些什么。

您可以查看spin-off

答案 2 :(得分:0)

以下是一些适用于汗学院的代码:

var x = 100;
var y = 100;
draw= function() {
    background(255, 0, 0);
    x=100*cos(frameCount);
    y=100*sin(frameCount);
    ellipse(x,y,20,20);
};

它将绘制一个围绕原点“绕轨道运行”的椭圆。希望您可以进行触发的基本演示,并根据您的需要进行推断。