[orx-composition] reverse argument order in draw()
Add demos with comments
This commit is contained in:
@@ -0,0 +1,61 @@
|
||||
import org.openrndr.MouseButton
|
||||
import org.openrndr.application
|
||||
import org.openrndr.color.ColorRGBa
|
||||
import org.openrndr.extra.composition.composition
|
||||
import org.openrndr.extra.composition.draw
|
||||
import org.openrndr.extra.composition.drawComposition
|
||||
import org.openrndr.math.Polar
|
||||
import org.openrndr.math.Vector2
|
||||
import kotlin.math.sin
|
||||
|
||||
/**
|
||||
* Demonstrates how to add content to and how to clear an existing Composition.
|
||||
*
|
||||
* A number of circles are added when the program starts.
|
||||
* Dragging the mouse button adds more circles.
|
||||
* Right-clicking the mouse clears the Composition.
|
||||
*/
|
||||
fun main() = application {
|
||||
program {
|
||||
val composition = drawComposition { }
|
||||
|
||||
// initial Composition content
|
||||
repeat(360) {
|
||||
composition.draw {
|
||||
fill = ColorRGBa.WHITE
|
||||
val r = sin(it / 90.0) * 30 + 40
|
||||
circle(
|
||||
drawer.bounds.center + Polar(it * 5.0, r * 2).cartesian,
|
||||
r
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
extend {
|
||||
drawer.clear(ColorRGBa.PINK)
|
||||
drawer.composition(composition)
|
||||
}
|
||||
|
||||
// To avoid drawing too many circles when dragging the mouse,
|
||||
// we require a minimum separation between them
|
||||
var lastPosition = Vector2.INFINITY
|
||||
val minSeparation = 10.0
|
||||
|
||||
mouse.dragged.listen {
|
||||
if(it.position.distanceTo(lastPosition) > minSeparation) {
|
||||
composition.draw {
|
||||
fill = ColorRGBa.WHITE
|
||||
// the drag speed affects the radius
|
||||
circle(it.position, 5.0 + it.dragDisplacement.length * 5.0)
|
||||
}
|
||||
lastPosition = it.position
|
||||
}
|
||||
}
|
||||
|
||||
mouse.buttonDown.listen {
|
||||
if (it.button == MouseButton.RIGHT) {
|
||||
composition.clear()
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user