Skip to content

Instantly share code, notes, and snippets.

@MacTuitui
Created June 12, 2018 13:29
Show Gist options
  • Select an option

  • Save MacTuitui/777f71f6cb5fb6f816f8ffd458b7a84b to your computer and use it in GitHub Desktop.

Select an option

Save MacTuitui/777f71f6cb5fb6f816f8ffd458b7a84b to your computer and use it in GitHub Desktop.
Daily 180612
//adapt to your framework
val traceA = ArrayBuffer[Vec2]()
val traceB = ArrayBuffer[Vec2]()
val frac = frameCount%120
val frac2 = .7+.3*sin(frac*TWO_PI)
val s = 700
val r = width*.01
for(k <- 0 until s){
val f = (k)*1.0/s
//angle start
val a = f*TWO_PI
val ca = cos(a)
val sa = sin(a)
val r1 = (noise(2+2*ca,2+2*sa,0)*width*.1)*(1+frac2*(cos(f*TWO_PI-frac*3*TWO_PI)))
val r2 = (noise(2+2*ca,2+2*sa,4)*width*.1)*(1+frac2*(cos(f*TWO_PI-frac*2*TWO_PI)))
val r3 = (noise(2+2*ca,2+2*sa,7)*width*.1)*(1+frac2*(cos(f*TWO_PI-frac*4*TWO_PI)))
//center
val cx = cos(a)*(r + r1*2 + r2)
val cy = sin(a)*(r + r1*2 + r2)
val s4 = 360
for( kk <- 0 until s4){
val a2 = kk*1.0/s4*TWO_PI+a-PI
val x = cx + r2*cos(a2)
val y = cy + r2*sin(a2)
traceA += new Vec2(x,y)
}
val cx2 = cos(a)*(r + 2*r1 + r2*2 + r3)
val cy2 = sin(a)*(r + 2*r1 + r2*2 + r3)
for( kk <- 0 until s4){
val a2 = kk*1.0/s4*TWO_PI+a-PI
val x = cx2 + r3*cos(a2)
val y = cy2 + r3*sin(a2)
traceB += new Vec2(x,y)
}
}
//then draw the vertices in traceA and traceB as polygons
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment