在 OS X App 中绘制四边形曲线
Drawing Quad Curve in OS X App
我可以在 iOS 中使用 UIBezierPath's
方法 addQuadCurveToPoint
绘制四边形曲线,但无法在 NSBezierPath 中找到相同的方法。
我只能在 NSBezierPath 中看到以下方法 class,
- moveToPoint:(NSPoint)point;
- lineToPoint:(NSPoint)point;
- curveToPoint:(NSPoint)endPoint
controlPoint1:(NSPoint)controlPoint1
controlPoint2:(NSPoint)controlPoint2;
- closePath;
有没有办法在OS X 环境下绘制四边形曲线?
呼叫path.addQuadCurve(to: endPoint, controlPoint: controlPoint)
,
代码如下
extension NSBezierPath{
func addQuadCurve(to endPoint: CGPoint, controlPoint: CGPoint){
let startPoint = self.currentPoint
let controlPoint1 = CGPoint(x: (startPoint.x + (controlPoint.x - startPoint.x) * 2.0/3.0), y: (startPoint.y + (controlPoint.y - startPoint.y) * 2.0/3.0))
let controlPoint2 = CGPoint(x: (endPoint.x + (controlPoint.x - endPoint.x) * 2.0/3.0), y: (endPoint.y + (controlPoint.y - endPoint.y) * 2.0/3.0))
curve(to: endPoint, controlPoint1: controlPoint1, controlPoint2: controlPoint2)
}
}
感谢 Rhythmic Fistman
我可以在 iOS 中使用 UIBezierPath's
方法 addQuadCurveToPoint
绘制四边形曲线,但无法在 NSBezierPath 中找到相同的方法。
我只能在 NSBezierPath 中看到以下方法 class,
- moveToPoint:(NSPoint)point;
- lineToPoint:(NSPoint)point;
- curveToPoint:(NSPoint)endPoint
controlPoint1:(NSPoint)controlPoint1
controlPoint2:(NSPoint)controlPoint2;
- closePath;
有没有办法在OS X 环境下绘制四边形曲线?
呼叫path.addQuadCurve(to: endPoint, controlPoint: controlPoint)
,
代码如下
extension NSBezierPath{
func addQuadCurve(to endPoint: CGPoint, controlPoint: CGPoint){
let startPoint = self.currentPoint
let controlPoint1 = CGPoint(x: (startPoint.x + (controlPoint.x - startPoint.x) * 2.0/3.0), y: (startPoint.y + (controlPoint.y - startPoint.y) * 2.0/3.0))
let controlPoint2 = CGPoint(x: (endPoint.x + (controlPoint.x - endPoint.x) * 2.0/3.0), y: (endPoint.y + (controlPoint.y - endPoint.y) * 2.0/3.0))
curve(to: endPoint, controlPoint1: controlPoint1, controlPoint2: controlPoint2)
}
}
感谢 Rhythmic Fistman