代码之家  ›  专栏  ›  技术社区  ›  31i45

通过3个NSPoints平滑曲线

  •  0
  • 31i45  · 技术社区  · 10 年前
    NSBezierPath *angle = [NSBezierPath bezierPath];
    [angle moveToPoint: NSMakePoint(100, 50)];
    [angle lineToPoint: NSMakePoint(125, 100)];
    [angle lineToPoint: NSMakePoint(100, 150)];
    [angle stroke];
    

    使用这个简单的3点代码,我可以将它们全部连接起来。此代码的产品看起来像这样。。。

    enter image description here

    这是我知道的用NSBezierPath绘制的唯一方法(而不是画一个圆)。

    我想知道如何画出一条平滑的曲线,抛出3个不同的点。这样看起来会是这样的。(红色)

    enter image description here

    我在网上找不到它。非常感谢。

    1 回复  |  直到 10 年前
        1
  •  1
  •   31i45    10 年前

    这应该能起到作用,当然,您应该使用这些值来获得所需的外观。

    NSBezierPath* bezierPath = [NSBezierPath bezierPath];
    [bezierPath moveToPoint: NSMakePoint(32.5, 16.5)];
    [bezierPath curveToPoint: NSMakePoint(60.5, 47.5) controlPoint1: NSMakePoint(32.5, 16.5) controlPoint2: NSMakePoint(57.5, 15.5)];
    [bezierPath curveToPoint: NSMakePoint(35.5, 78.5) controlPoint1: NSMakePoint(63.5, 79.5) controlPoint2: NSMakePoint(35.5, 78.5)];
    [[NSColor blackColor]setStroke];
    bezierPath.lineWidth = 1;
    [bezierPath stroke];