[orx-shapes] Add demos, tweak comments
This commit is contained in:
32
orx-shapes/src/jvmDemo/kotlin/alphashape/DemoAlphaShape01.kt
Normal file
32
orx-shapes/src/jvmDemo/kotlin/alphashape/DemoAlphaShape01.kt
Normal file
@@ -0,0 +1,32 @@
|
||||
package alphashape
|
||||
|
||||
import org.openrndr.application
|
||||
import org.openrndr.color.ColorRGBa
|
||||
import org.openrndr.extra.shapes.alphashape.AlphaShape
|
||||
import org.openrndr.math.Vector2
|
||||
import kotlin.random.Random
|
||||
|
||||
/**
|
||||
* Demonstrates the use of [AlphaShape] to create a [org.openrndr.shape.ShapeContour] out
|
||||
* of a collection of random [Vector2] points. Unlike the convex hull, an Alpha shape can be concave.
|
||||
*
|
||||
* More details in [WikiPedia](https://en.wikipedia.org/wiki/Alpha_shape)
|
||||
*/
|
||||
fun main() = application {
|
||||
program {
|
||||
val points = List(40) {
|
||||
Vector2(
|
||||
Random.nextDouble(width * 0.25, width * 0.75),
|
||||
Random.nextDouble(height * 0.25, height * 0.75)
|
||||
)
|
||||
}
|
||||
val alphaShape = AlphaShape(points)
|
||||
val c = alphaShape.createContour()
|
||||
extend {
|
||||
drawer.fill = ColorRGBa.PINK
|
||||
drawer.contour(c)
|
||||
drawer.fill = ColorRGBa.WHITE
|
||||
drawer.circles(points, 4.0)
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user