diff --git a/orx-shapes/src/jvmDemo/kotlin/ordering/DemoHilbertOrder01.kt b/orx-shapes/src/jvmDemo/kotlin/ordering/DemoHilbertOrder01.kt new file mode 100644 index 00000000..96096a93 --- /dev/null +++ b/orx-shapes/src/jvmDemo/kotlin/ordering/DemoHilbertOrder01.kt @@ -0,0 +1,25 @@ +package ordering + +import org.openrndr.application +import org.openrndr.color.ColorRGBa +import org.openrndr.extra.noise.uniform +import org.openrndr.extra.shapes.ordering.hilbertOrder +import kotlin.random.Random + +fun main() { + application { + configure { + width = 720 + height = 720 + } + program { + val points = drawer.bounds.offsetEdges(-20.0).uniform(40, Random(0)) + val sortedPoints = points.hilbertOrder(bits = 16, scale = 1.0) + extend { + drawer.clear(ColorRGBa.PINK) + drawer.stroke = ColorRGBa.RED + drawer.lineStrip(sortedPoints) + } + } + } +} \ No newline at end of file diff --git a/orx-shapes/src/jvmDemo/kotlin/ordering/DemoHilbertOrder02.kt b/orx-shapes/src/jvmDemo/kotlin/ordering/DemoHilbertOrder02.kt new file mode 100644 index 00000000..8887ea73 --- /dev/null +++ b/orx-shapes/src/jvmDemo/kotlin/ordering/DemoHilbertOrder02.kt @@ -0,0 +1,29 @@ +package ordering + +import org.openrndr.application +import org.openrndr.color.ColorRGBa +import org.openrndr.extra.noise.uniform +import org.openrndr.extra.shapes.ordering.hilbertOrder +import org.openrndr.extra.shapes.ordering.mortonOrder +import kotlin.random.Random + +fun main() { + application { + configure { + width = 720 + height = 720 + } + program { + val points = drawer.bounds.offsetEdges(-20.0).uniform(400, Random(0)) + val sortedPoints0 = points.hilbertOrder(bits = 16, scale = 1.0) + val sortedPoints1 = points.map { it.xy0 }.hilbertOrder(bits = 10, scale = 1.0).map { it.xy } + extend { + drawer.clear(ColorRGBa.PINK) + drawer.stroke = ColorRGBa.RED + drawer.lineStrip(sortedPoints0) + drawer.stroke = ColorRGBa.BLUE + drawer.lineStrip(sortedPoints1) + } + } + } +} \ No newline at end of file