[orx-noise] Fix bug in List<Triangle>.uniform
This commit is contained in:
@@ -17,7 +17,7 @@ fun List<Triangle>.uniform(count: Int, random: Random = Random.Default): List<Ve
|
||||
var sum = 0.0
|
||||
for (t in this) {
|
||||
sum += t.area
|
||||
while (idx < randoms.lastIndex && sum > randoms[idx]) {
|
||||
while (idx <= randoms.lastIndex && sum > randoms[idx]) {
|
||||
result.add(t.randomPoint(random))
|
||||
idx++
|
||||
}
|
||||
|
||||
31
orx-noise/src/jvmDemo/kotlin/DemoTriangleNoise01.kt
Normal file
31
orx-noise/src/jvmDemo/kotlin/DemoTriangleNoise01.kt
Normal file
@@ -0,0 +1,31 @@
|
||||
import org.openrndr.application
|
||||
import org.openrndr.color.ColorRGBa
|
||||
import org.openrndr.extra.noise.uniform
|
||||
import org.openrndr.shape.Triangle
|
||||
import kotlin.random.Random
|
||||
|
||||
/**
|
||||
* Demonstrate the generation of uniformly distributed points inside a list of triangles
|
||||
* @see <img src="https://raw.githubusercontent.com/openrndr/orx/media/orx-noise/images/DemoTriangleNoise01Kt.png">
|
||||
*/
|
||||
fun main() {
|
||||
application {
|
||||
configure {
|
||||
width = 720
|
||||
height = 720
|
||||
}
|
||||
program {
|
||||
val r = drawer.bounds.offsetEdges(-100.0)
|
||||
val triangle = Triangle(r.position(0.5, 0.0), r.position(0.0, 1.0), r.position(1.0, 1.0))
|
||||
val pts = listOf(triangle).uniform(1000, Random(0))
|
||||
extend {
|
||||
drawer.clear(ColorRGBa.PINK)
|
||||
drawer.stroke = null
|
||||
drawer.contour(triangle.contour)
|
||||
drawer.fill = ColorRGBa.BLACK
|
||||
|
||||
drawer.circles(pts, 5.0)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user