Bump to OPENRNDR 0.3.44-rc.7, add intersection demos
This commit is contained in:
37
openrndr-demos/src/demo/kotlin/DemoContourIntersections01.kt
Normal file
37
openrndr-demos/src/demo/kotlin/DemoContourIntersections01.kt
Normal file
@@ -0,0 +1,37 @@
|
||||
import org.openrndr.application
|
||||
import org.openrndr.color.ColorRGBa
|
||||
import org.openrndr.shape.Ellipse
|
||||
import org.openrndr.shape.OrientedEllipse
|
||||
import org.openrndr.shape.intersections
|
||||
|
||||
fun main() {
|
||||
application {
|
||||
program {
|
||||
val c1 = Ellipse(width / 2.0, height / 2.0, 200.0, 100.0).contour
|
||||
extend {
|
||||
drawer.clear(ColorRGBa.PINK)
|
||||
drawer.fill = null
|
||||
val c2 = OrientedEllipse(mouse.position, 100.0, 200.0, seconds*45.0).contour
|
||||
drawer.contour(c1)
|
||||
//drawer.contour(c2)
|
||||
val ints = intersections(c1, c2)
|
||||
|
||||
if (ints.isEmpty()) {
|
||||
drawer.contour(c2)
|
||||
} else {
|
||||
(ints + ints.take(1)).map { it.contourTB }.zipWithNext().forEach {
|
||||
val end = if (it.second <= it.first) it.second + 1.0 else it.second
|
||||
val sub = c2.sub(it.first, end)
|
||||
val l = sub.length
|
||||
val ta = sub.tForLength(15.0)
|
||||
val tb = sub.tForLength(l - 15.0)
|
||||
drawer.contour(sub.sub(ta, tb))
|
||||
}
|
||||
}
|
||||
for (i in ints) {
|
||||
drawer.circle(i.position, 15.0)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user