Skip to content

Commit

Permalink
[orx-noise] Fix bug in List<Triangle>.uniform
Browse files Browse the repository at this point in the history
  • Loading branch information
edwinRNDR committed Oct 19, 2024
1 parent 6e5eb28 commit 8a18546
Show file tree
Hide file tree
Showing 2 changed files with 32 additions and 1 deletion.
2 changes: 1 addition & 1 deletion orx-noise/src/commonMain/kotlin/TriangleNoise.kt
Original file line number Diff line number Diff line change
Expand Up @@ -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++
}
Expand Down
31 changes: 31 additions & 0 deletions orx-noise/src/jvmDemo/kotlin/DemoTriangleNoise01.kt
Original file line number Diff line number Diff line change
@@ -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)
}
}
}
}

0 comments on commit 8a18546

Please sign in to comment.