objective-c - 在 OS X 应用程序中绘制四边形曲线

标签 objective-c macos cocoa core-graphics

我可以使用 UIBezierPath's 绘制四边形曲线方法addQuadCurveToPoint在iOS中,但在NSBezierPath中找不到相同的方法。

我只能在 NSBezierPath 类中看到以下方法,

- 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)
    }
}

感谢节奏拳手

关于objective-c - 在 OS X 应用程序中绘制四边形曲线,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44103678/

相关文章:

objective-c - 计算按位值的数量

ios - 如何使用密码保护在电子邮件上发送 zip 文件并在 objective-c 中通过电子邮件解压缩

ios - ViewController 未以编程方式执行 segue

ios - UIView animateKeyframes 不起作用

macos - NCurses 和 OS X 10.6 发生了什么变化?

linux - 命令行 Arduino 编译和上传?

objective-c - NSCell 与 NSView : when many controls are needed

c++ - 代码 : CURRENT_PROJECT_VERSION in product name

objective-c - NSMatrix 有多个切换按钮?

objective-c - 管理 NSSearchfield 上的键盘事件,无需子类化