Path utils
Simple utils for svg paths and some more
Gradle:
implementation("io.github.mimimishkin:path-utils:1.0.2")
Samples
Svg paths
val path1 = mutablePath().moveTo(9, 0).quadTo(12, 14, 20, 22).done()
val path2 = path("M 9 0 Q 12 14 20 22")
println(path1.toSvg() == path2.toSvg())
Operations with path
Some math for bezier curve
- Intersections with another bezier or line
- Length finding
- Arc length parametrization
- Bounds finding
- Projection finding
- Curvature finding
Standard elements
val circle = ( = , = , = )
val = ( = , = , = , heigth = )
val roundedRect = ( = , = , = , heigth = , rx = , ry = )
Transformations
val path = ...
val scaled = path.scale(sx = 2.0, s.y = 90.0)
val translated = path.translate(tx = 10.0, ty = 20.0)
val transformed = path.transformWith(Transfrorms.rotateX(PI / 4))
Additional elements
val star = star(...
val ring = ring(...
val quadRing = quadRing(...
val polygon = polygon(... // regular polygon
val spiral = spiral(...
val curve = curve(... // to make new elements from math functions
Java compatibility
val shape = path()
val = shape()
val = (, , )
val star = (, , )
val = difference star
val path1 = ()
val = (stroke)