import org.openrndr.application import org.openrndr.color.ColorRGBa import org.openrndr.extra.marchingsquares.findContours import org.openrndr.math.Vector2 import kotlin.math.PI import kotlin.math.cos import kotlin.math.sin fun main() = application { configure { width = 720 height = 720 } program { extend { drawer.clear(ColorRGBa.BLACK) drawer.stroke = ColorRGBa.PINK drawer.fill = null fun f(v: Vector2): Double { val p = v + Vector2(cos(v.y * 0.1 + seconds) * 40.0, sin(v.x * 0.1 + seconds) * 40.0) return cos((p.distanceTo(drawer.bounds.center) / 720.0) * 12 * PI) } val contours = findContours(::f, drawer.bounds.offsetEdges(-2.0), 4.0) drawer.contours(contours) } } }