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

`function u(t) {`

```}// 139/140 ```

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

• Depth demo
• u/pavel
Pretty simple technique, when generating the 3d points instead of directly drawing them, store them in an array, sort it by depth back to front, then draw.
• u/keithclark
175. Removed need for `reverse()` by reversing the projection (far points are painted near and vice-versa): `for(c.width|=o=[i=w=960];i--;)o[i]=[C(a=i-t/9)*C(b=i*20),S(a)*C(b),S(b),`hsl(\${i},69%,50%`];for([Z,X,Y,x.fillStyle]of o.sort())x.fillRect(w+w*X/(j=2.1-Z),540+w*Y/j,s=50/j/j,s)`
• u/keithclark
158 - `for(c.width|=o=[i=w=708];i--;o[i]=[C(a=i+t)*C(b=i*20),S(a)*C(b),S(b),R(a)]);for([Z,X,Y,x.fillStyle]of o.sort())Z-=2,x.fillRect(960+w*X/Z,540+w*Y/Z,s=50/Z/Z,s)`
• u/Joachim

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