dwitter.net

+ New dweet
function u(t) {
} //
122/140


Please log in (or register) to post a dweet (copy-paste the code somewhere safe to save it meanwhile)


u(t) is called 60 times per second. t: Elapsed time in seconds. S: Shorthand for Math.sin. C: Shorthand for Math.cos. T: Shorthand for Math.tan. R: Function that generates rgba-strings, usage ex.: R(255, 255, 255, 0.5) c: A 1920x1080 canvas. x: A 2D context for that canvas.
show FPS hide FPS share fullscreen

function u(t) {

}//
140/140


Please log in (or register) to post as a new dweet (copy-paste code somewhere safe to save it meanwhile).

  • Galaxy
  • u/pavel
    300 bodies which individually only interact with an infinite mass at the center
  • u/pavel
    Each body moves around an ellipse, the orbits are accurate. However, the movement speed is a very rough approximation.
  • u/pavel
    Naively drawing an ellipse centers it around one of the focal points, however moving a body on this path slows the body down near this focal point and speeds it up near the other one.
  • u/pavel
    The opposite effect is needed. So this code still moves a body around an ellipse but it re-centers the ellipse on the 'other' focal point.
  • u/pavel
    In polar coordinates the difference between the x and y coordinates is a phase shift of pi/2 ~ 1.6

Please log in (or register) to comment.

u(t) is called 60 times per second. t: elapsed time in seconds. c: A 1920x1080 canvas. x: A 2D context for that canvas. S: Math.sin C: Math.cos T: Math.tan R: Generates rgba-strings, ex.: R(255, 255, 255, 0.5)