Fix demos
This commit is contained in:
@@ -1,6 +1,7 @@
|
|||||||
import org.openrndr.application
|
import org.openrndr.application
|
||||||
import org.openrndr.color.ColorRGBa
|
import org.openrndr.color.ColorRGBa
|
||||||
import org.openrndr.draw.ColorType
|
import org.openrndr.draw.ColorType
|
||||||
|
import org.openrndr.draw.createEquivalent
|
||||||
|
|
||||||
import org.openrndr.draw.isolatedWithTarget
|
import org.openrndr.draw.isolatedWithTarget
|
||||||
import org.openrndr.draw.renderTarget
|
import org.openrndr.draw.renderTarget
|
||||||
|
|||||||
@@ -1,6 +1,7 @@
|
|||||||
import org.openrndr.application
|
import org.openrndr.application
|
||||||
import org.openrndr.color.ColorRGBa
|
import org.openrndr.color.ColorRGBa
|
||||||
import org.openrndr.draw.ColorType
|
import org.openrndr.draw.ColorType
|
||||||
|
import org.openrndr.draw.createEquivalent
|
||||||
|
|
||||||
import org.openrndr.draw.isolatedWithTarget
|
import org.openrndr.draw.isolatedWithTarget
|
||||||
import org.openrndr.draw.renderTarget
|
import org.openrndr.draw.renderTarget
|
||||||
|
|||||||
@@ -1,8 +1,10 @@
|
|||||||
import org.openrndr.applicationSynchronous
|
|
||||||
|
import org.openrndr.application
|
||||||
import org.openrndr.extensions.Screenshots
|
import org.openrndr.extensions.Screenshots
|
||||||
import org.openrndr.extensions.SingleScreenshot
|
import org.openrndr.extensions.SingleScreenshot
|
||||||
|
import org.openrndr.extra.gitarchiver.GitArchiver
|
||||||
|
|
||||||
fun main() = applicationSynchronous {
|
fun main() = application {
|
||||||
program {
|
program {
|
||||||
if (System.getProperty("takeScreenshot") == "true") {
|
if (System.getProperty("takeScreenshot") == "true") {
|
||||||
extend(SingleScreenshot()) {
|
extend(SingleScreenshot()) {
|
||||||
|
|||||||
@@ -1,11 +1,11 @@
|
|||||||
import org.openrndr.Extension
|
import org.openrndr.Extension
|
||||||
import org.openrndr.Program
|
import org.openrndr.Program
|
||||||
import org.openrndr.application
|
import org.openrndr.application
|
||||||
import org.openrndr.applicationSynchronous
|
|
||||||
import org.openrndr.extensions.SingleScreenshot
|
import org.openrndr.extensions.SingleScreenshot
|
||||||
import org.openrndr.extra.olive.Olive
|
import org.openrndr.extra.olive.Olive
|
||||||
|
|
||||||
fun main() = applicationSynchronous {
|
fun main() = application {
|
||||||
configure {
|
configure {
|
||||||
width = 768
|
width = 768
|
||||||
height = 576
|
height = 576
|
||||||
|
|||||||
@@ -5,7 +5,6 @@ import org.openrndr.extra.noise.poissonDiskSampling
|
|||||||
import org.openrndr.extra.triangulation.Delaunay
|
import org.openrndr.extra.triangulation.Delaunay
|
||||||
import org.openrndr.math.Vector2
|
import org.openrndr.math.Vector2
|
||||||
import org.openrndr.shape.Circle
|
import org.openrndr.shape.Circle
|
||||||
import org.openrndr.shape.Rectangle
|
|
||||||
|
|
||||||
fun main() {
|
fun main() {
|
||||||
application {
|
application {
|
||||||
|
|||||||
@@ -1,18 +1,19 @@
|
|||||||
import org.openrndr.application
|
import org.openrndr.application
|
||||||
import org.openrndr.color.ColorRGBa
|
import org.openrndr.color.ColorRGBa
|
||||||
import org.openrndr.extra.noise.poissonDiskSampling
|
|
||||||
import org.openrndr.math.Vector2
|
import org.openrndr.math.Vector2
|
||||||
import org.openrndr.math.mod_
|
import org.openrndr.math.mod_
|
||||||
import org.openrndr.shape.Circle
|
|
||||||
|
import org.openrndr.extra.noise.scatter
|
||||||
import org.openrndr.shape.Ellipse
|
import org.openrndr.shape.Ellipse
|
||||||
import kotlin.math.cos
|
import kotlin.math.cos
|
||||||
|
import kotlin.random.Random
|
||||||
|
|
||||||
fun main() {
|
fun main() {
|
||||||
application {
|
application {
|
||||||
program {
|
program {
|
||||||
extend {
|
extend {
|
||||||
val shape = Ellipse(Vector2(width/2.0, height/2.0), 200.0, 150.0 + cos(seconds)*125.0).shape
|
val shape = Ellipse(Vector2(width/2.0, height/2.0), 200.0, 150.0 + cos(seconds)*125.0).shape
|
||||||
val points = shape.poissonDiskSampling(10.0)
|
val points = shape.scatter(20.0, random = Random(0))
|
||||||
drawer.clear(ColorRGBa.BLACK)
|
drawer.clear(ColorRGBa.BLACK)
|
||||||
drawer.stroke = null
|
drawer.stroke = null
|
||||||
drawer.fill = ColorRGBa.PINK
|
drawer.fill = ColorRGBa.PINK
|
||||||
@@ -22,20 +22,16 @@ fun hobbyCurve(points: List<Vector2>, closed: Boolean = false, curl: Double = 0.
|
|||||||
val m = points.size
|
val m = points.size
|
||||||
val n = if (closed) m else m - 1
|
val n = if (closed) m else m - 1
|
||||||
|
|
||||||
val diffs = arrayOfNulls<Vector2>(n)
|
val diffs = Array(n) { points[(it+1) % m] - points[it] }
|
||||||
val distances = arrayOfNulls<Double>(n)
|
val distances = Array(n) { diffs[it].length }
|
||||||
for (i in 0 until n){
|
|
||||||
diffs[i] = points[(i+1) % m] - points[i]
|
|
||||||
distances[i] = diffs[i]!!.length
|
|
||||||
}
|
|
||||||
|
|
||||||
val gamma = arrayOfNulls<Double>(m)
|
val gamma = arrayOfNulls<Double>(m)
|
||||||
for (i in (if (closed) 0 else 1) until n){
|
for (i in (if (closed) 0 else 1) until n){
|
||||||
val k = (i + m - 1) % m
|
val k = (i + m - 1) % m
|
||||||
val n1 = diffs[k]!!.normalized
|
val n1 = diffs[k].normalized
|
||||||
val s = n1.y
|
val s = n1.y
|
||||||
val c = n1.x
|
val c = n1.x
|
||||||
val v = rotate(diffs[i]!!, -s, c)
|
val v = rotate(diffs[i], -s, c)
|
||||||
gamma[i] = atan2(v.y, v.x)
|
gamma[i] = atan2(v.y, v.x)
|
||||||
}
|
}
|
||||||
if (!closed) gamma[n] = 0.0
|
if (!closed) gamma[n] = 0.0
|
||||||
@@ -49,10 +45,10 @@ fun hobbyCurve(points: List<Vector2>, closed: Boolean = false, curl: Double = 0.
|
|||||||
val j = (i + 1) % m
|
val j = (i + 1) % m
|
||||||
val k = (i + m - 1) % m
|
val k = (i + m - 1) % m
|
||||||
|
|
||||||
a[i] = 1 / distances[k]!!
|
a[i] = 1 / distances[k]
|
||||||
b[i] = (2 * distances[k]!! + 2 * distances[i]!!) / (distances[k]!! * distances[i]!!)
|
b[i] = (2 * distances[k] + 2 * distances[i]) / (distances[k] * distances[i])
|
||||||
c[i] = 1 / distances[i]!!
|
c[i] = 1 / distances[i]
|
||||||
d[i] = -(2 * gamma[i]!! * distances[i]!! + gamma[j]!! * distances[k]!!) / (distances[k]!! * distances[i]!!)
|
d[i] = -(2 * gamma[i]!! * distances[i] + gamma[j]!! * distances[k]) / (distances[k] * distances[i])
|
||||||
}
|
}
|
||||||
|
|
||||||
lateinit var alpha: Array<Double>
|
lateinit var alpha: Array<Double>
|
||||||
@@ -91,10 +87,10 @@ fun hobbyCurve(points: List<Vector2>, closed: Boolean = false, curl: Double = 0.
|
|||||||
val c1s = mutableListOf<Vector2>()
|
val c1s = mutableListOf<Vector2>()
|
||||||
val c2s = mutableListOf<Vector2>()
|
val c2s = mutableListOf<Vector2>()
|
||||||
for (i in 0 until n){
|
for (i in 0 until n){
|
||||||
val v1 = rotateAngle(diffs[i]!!, alpha[i]).normalized
|
val v1 = rotateAngle(diffs[i], alpha[i]).normalized
|
||||||
val v2 = rotateAngle(diffs[i]!!, -beta[i]!!).normalized
|
val v2 = rotateAngle(diffs[i], -beta[i]!!).normalized
|
||||||
c1s.add(points[i % m] + v1 * rho(alpha[i], beta[i]!!) * distances[i]!! / 3.0)
|
c1s.add(points[i % m] + v1 * rho(alpha[i], beta[i]!!) * distances[i] / 3.0)
|
||||||
c2s.add(points[(i+1) % m] - v2 * rho(beta[i]!!, alpha[i]) * distances[i]!! / 3.0)
|
c2s.add(points[(i+1) % m] - v2 * rho(beta[i]!!, alpha[i]) * distances[i] / 3.0)
|
||||||
}
|
}
|
||||||
|
|
||||||
return ShapeContour(List(n) { Segment(points[it], c1s[it], c2s[it], points[(it+1)%m]) }, closed=closed)
|
return ShapeContour(List(n) { Segment(points[it], c1s[it], c2s[it], points[(it+1)%m]) }, closed=closed)
|
||||||
|
|||||||
@@ -1,9 +1,9 @@
|
|||||||
import org.openrndr.applicationSynchronous
|
import org.openrndr.application
|
||||||
import org.openrndr.extensions.SingleScreenshot
|
import org.openrndr.extensions.SingleScreenshot
|
||||||
import org.openrndr.extra.temporalblur.TemporalBlur
|
import org.openrndr.extra.temporalblur.TemporalBlur
|
||||||
import org.openrndr.math.Polar
|
import org.openrndr.math.Polar
|
||||||
|
|
||||||
fun main() = applicationSynchronous {
|
fun main() = application {
|
||||||
program {
|
program {
|
||||||
if (System.getProperty("takeScreenshot") == "true") {
|
if (System.getProperty("takeScreenshot") == "true") {
|
||||||
extend(SingleScreenshot()) {
|
extend(SingleScreenshot()) {
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
import org.openrndr.applicationSynchronous
|
import org.openrndr.application
|
||||||
import org.openrndr.color.ColorRGBa
|
import org.openrndr.color.ColorRGBa
|
||||||
import org.openrndr.draw.tint
|
import org.openrndr.draw.tint
|
||||||
import org.openrndr.extensions.SingleScreenshot
|
import org.openrndr.extensions.SingleScreenshot
|
||||||
@@ -6,7 +6,7 @@ import org.openrndr.extra.temporalblur.TemporalBlur
|
|||||||
import org.openrndr.math.Polar
|
import org.openrndr.math.Polar
|
||||||
import kotlin.math.cos
|
import kotlin.math.cos
|
||||||
|
|
||||||
fun main() = applicationSynchronous {
|
fun main() = application {
|
||||||
program {
|
program {
|
||||||
if (System.getProperty("takeScreenshot") == "true") {
|
if (System.getProperty("takeScreenshot") == "true") {
|
||||||
extend(SingleScreenshot()) {
|
extend(SingleScreenshot()) {
|
||||||
|
|||||||
Reference in New Issue
Block a user