[orx-text-writer] Add horizontal and vertical text alignment features

Introduced horizontalAlign and verticalAlign properties in WriteStyle and TextWriter, enabling precise text alignment within bounding boxes. Enhanced text token management to support alignment calculations and adjusted demos to showcase the new capabilities.
This commit is contained in:
Edwin Jakobs
2025-02-26 12:27:40 +01:00
parent a4c053183c
commit 46744025a8
5 changed files with 386 additions and 14 deletions

View File

@@ -0,0 +1,29 @@
import org.openrndr.application
import org.openrndr.draw.loadFont
import org.openrndr.extra.shapes.primitives.grid
import org.openrndr.extra.textwriter.writer
import kotlin.math.PI
import kotlin.math.cos
fun main() {
application {
configure {
width = 720
height = 720
}
program {
extend {
val columns = drawer.bounds.grid(3, 3).flatten()
drawer.fontMap = loadFont("demo-data/fonts/IBMPlexMono-Regular.ttf", 24.0)
for ((index, column) in columns.withIndex()) {
writer {
style.horizontalAlign = cos(seconds + (index/8.0) * 2 * PI) * 0.5 + 0.5
box = column.offsetEdges(-20.0)
newLine()
text("DEAR FRIENDS.\nIT TOOK A WHILE, BUT NOW WE HAVE HORIZONTAL TEXT ALIGNMENT!\nLET'S CELEBRATE")
}
}
}
}
}
}