(by @andrestaltz)
If you prefer to watch video tutorials with live-coding, then check out this series I recorded with the same contents as in this article: Egghead.io - Introduction to Reactive Programming.
(by @andrestaltz)
If you prefer to watch video tutorials with live-coding, then check out this series I recorded with the same contents as in this article: Egghead.io - Introduction to Reactive Programming.
function epicycloid(t, rmaj, rmin) = [ (rmaj+rmin) * cos(t) - rmin * cos(((rmaj+rmin)/rmin)*t), | |
(rmaj+rmin) * sin(t) - rmin * sin(((rmaj+rmin)/rmin)*t) ]; | |
function hypocycloid(t, rmaj, rmin) = [ (rmaj-rmin) * cos(t) + rmin * cos(((rmaj-rmin)/rmin)*t), | |
(rmaj-rmin) * sin(t) - rmin * sin(((rmaj-rmin)/rmin)*t) ]; | |
module CycloidTooth( | |
rmaj = 30, | |
rmin = 20, | |
circ_pitch = 10.0, |
var volume = 0; | |
var v1 = vec3.create(), | |
v2 = vec3.create(), | |
v3 = vec3.create(); | |
var i,index1,index2,index3; | |
for(i=0;i<numIndices;) { | |
index1 = indices[i++]*3; | |
index2 = indices[i++]*3; | |
index3 = indices[i++]*3; |