## 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. ```
remix of d/27866 by u/@noel

`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).

• Projection Faster and Uncompressed
• u/@noel
I love this one and I follow the logic, until the z & w performing. I know it's a bitwise AND operation on z and w, but I don't actually grasp it.
• u/@noel
I mean on this one: x.fillRect(i, j, 1, (z & w) / w)
• u/joeytwiddle
Here `(z & w) / w` is the height of the rectangle. If that height is less than 1, then the canvas anti-aliasing renders a grey pixel, instead of a black one.
• u/@noel
Thanks u/joeytwiddle Now I think I get it. (z & w) ensures that the value of z remains within the range of the canvas width 'w', and the dividing by w normalizes the height value. Great trick!

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) ```