-
Notifications
You must be signed in to change notification settings - Fork 37
/
DemoDelaunay01.kt
32 lines (29 loc) · 1.06 KB
/
DemoDelaunay01.kt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
import org.openrndr.application
import org.openrndr.color.ColorRGBa
import org.openrndr.extra.noise.scatter
import org.openrndr.extra.triangulation.delaunayTriangulation
import org.openrndr.math.Vector2
import org.openrndr.shape.Circle
fun main() {
application {
configure {
width = 800
height = 800
title = "Delaunator"
}
program {
val circle = Circle(Vector2(400.0), 250.0)
val points = circle.shape.scatter(30.0)
val delaunay = (points + circle.contour.equidistantPositions(40)).delaunayTriangulation()
val triangles = delaunay.triangles().map { it.contour }
extend {
drawer.clear(ColorRGBa.BLACK)
for ((i, triangle) in triangles.withIndex()) {
drawer.fill = ColorRGBa.PINK.shade(1.0 - i / (triangles.size * 1.2))
drawer.stroke = ColorRGBa.PINK.shade(i / (triangles.size * 1.0) + 0.1)
drawer.contour(triangle)
}
}
}
}
}