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 1 remix fullscreen

function u(t) {

}//
134/140


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

  • u/tomxor
    Inspired by d/23398. Uses raster/2d-voxel based intersection
  • u/Xen
    love it!
  • u/magna
    HOW?!
  • u/katkip
    how
  • u/tomxor
    It's particle physics, but the collisions are with implicit volumes. So rather than checking against a specific object, each pixel is intersected with the circle, if the pixel is filled and intersects, then it contributes velocity to the particle along the collision normal (the vector between the pixel and the point), the deeper the intersection based on the radius the greater the contribution... this is not correct at all and creates lots of phantom momentum, but is very simple and shares the code with drawining the screen.

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)