Files
orx/orx-delegate-magic/src/jvmDemo/kotlin/DemoDifferencing01.kt
Abe Pazos c8f7dd52c6 Demos: ensure all use fun main() = application {
- Adjust some demo window sizes.
- Replace Random.double by Double.uniform
- Tweak some demos so screenshots look more interesting
2025-01-26 20:57:04 +01:00

39 lines
1.3 KiB
Kotlin

import difference.differencing
import org.openrndr.application
import org.openrndr.color.ColorRGBa
import org.openrndr.extra.delegatemagic.aggregation.aggregating
import org.openrndr.extra.delegatemagic.aggregation.maxMag
import org.openrndr.extra.delegatemagic.tracking.tracking
import org.openrndr.extra.gui.GUI
import org.openrndr.extra.parameters.DoubleParameter
import org.openrndr.math.Vector2
fun main() = application {
program {
val gui = GUI()
val state = object {
@DoubleParameter("radius", 0.0, 200.0)
var radius = 100.0
val difference by differencing(::radius)
val differenceHistory by tracking(::difference)
val differenceMax by aggregating(::differenceHistory) {
it.maxMag()
}
}
gui.add(state, "state")
extend(gui)
extend {
drawer.circle(drawer.bounds.center, state.radius)
drawer.stroke = ColorRGBa.GREEN
drawer.lineSegment(drawer.bounds.center, drawer.bounds.center + Vector2(state.difference, 0.0))
drawer.translate(0.0, 4.0)
drawer.stroke = ColorRGBa.BLUE
drawer.lineSegment(drawer.bounds.center, drawer.bounds.center + Vector2(state.differenceMax, 0.0))
}
}
}