Files
orx/orx-noise/src/jvmDemo/kotlin/linearrange/DemoLinearRange02.kt
2025-08-30 13:56:01 +02:00

35 lines
1.1 KiB
Kotlin

package linearrange
import org.openrndr.application
import org.openrndr.color.ColorLCHUVa
import org.openrndr.extra.math.linearrange.rangeTo
import org.openrndr.extra.noise.linearrange.hash
import org.openrndr.shape.Circle
/**
* Demonstrates how to create a linear range with two [org.openrndr.shape.Circle]s.
*
* This range is then sampled at 100 random locations using the `hash` method to get and render interpolated
* circles. The random seed changes once per second.
*
* Colors are calculated based on the index of each circle.
*/
fun main() {
application {
configure {
width = 720
height = 720
}
program {
val circle1 = Circle(drawer.bounds.position(0.3, 0.3), 50.0)
val circle2 = Circle(drawer.bounds.position(0.7, 0.7), 200.0)
val range = circle1..circle2
extend {
for (i in 0 until 100) {
drawer.fill = ColorLCHUVa(i * 1.0, i * 1.0, i * 30.0).toRGBa().opacify(0.6)
drawer.circle(range.hash(seconds.toInt(), i))
}
}
}
}
}