AuthorTravis Kirton
Tags shapes, curves, interaction
Here’s how to attach a few gesture recognizers to some shapes and then connect their movement to the control points of a couple curves.
var a, b, c: UIPanGestureRecognizer! override func setup() { var points = (Point(canvas.width/4, canvas.height/3), Point(canvas.width*3/4, canvas.height/3)) let bezier = Curve(begin: points.0, control0: points.0, control1: points.1, end: points.1) canvas.add(bezier) let cA = Circle(center: points.0, radius: 22) let cB = Circle(center: points.1, radius: 22) cB.fillColor = C4Pink points.0.y *= 2.0 points.1.y *= 2.0 let quad = QuadCurve(begin: points.0, control: lerp(points.0, points.1, at: 0.5), end: points.1) canvas.add(quad) let cC = Circle(center: quad.controlPoint, radius: 22) cC.fillColor = C4Purple canvas.add(cA) canvas.add(cB) canvas.add(cC) a = cA.addPanGestureRecognizer { locations, center, translation, velocity, state in cA.center += translation bezier.controlPoints.0 = cA.center self.a.setTranslation(CGPoint(), inView: self.canvas.view) } b = cB.addPanGestureRecognizer { locations, center, translation, velocity, state in cB.center += translation bezier.controlPoints.1 = cB.center self.b.setTranslation(CGPoint(), inView: self.canvas.view) } c = cC.addPanGestureRecognizer { locations, center, translation, velocity, state in cC.center += translation quad.controlPoint = cC.center self.c.setTranslation(CGPoint(), inView: self.canvas.view) } }