Simple operators (plus convenient initializers and constants) for CoreGraphics geometric constructs:
let a = CGPoint(x: 4, y: 7) print(CGVector(a).length) // 8.06 print(CGVector(a).angle) // 1.05… (~60.3°) let b = CGPoint(x: 10, y: 3) print(b - a) // CGVector(dx: 6, dy: -4) print(a + 0.5 * (b - a)) // CGPoint(x: 7, y: 5) let offset = CGVector(dx: 10, dy: -5) print(a + offset) // CGPoint(x: 14, y: 2) print(a + offset / 2) // CGPoint(x: 9, y: 4.5) let angled = CGVector(angle: 1/3 * .pi, length: 2) print(angled) // CGVector(dx: 1, dy: 1.73…)
You may find interesting
Rectangles and Documentation - 2019-12-04 23:45:41
- Added ways to scale rectangles up or down by floats or sizes.
- Added documentation to the less trivial functions.
The sizeable update - 2019-11-27 03:59:55
- Turns out sizes are just scalars in 2 dimensions, so to speak. So everything can be scaled by a size now.
- All types now have
mapfunctions that transform each component in the same way.
Not quite backwards compatible, because I removed vector-vector scaling in the process.
Culling and Expanding - 2019-10-10 03:05:46
- removed several things that didn't make sense
- added several things that do
- breaking changes from v0.0.0; i'll stop doing those on minor releases past v1.0