首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >NSBezierPath线变薄

NSBezierPath线变薄
EN

Stack Overflow用户
提问于 2019-04-04 00:28:34
回答 1查看 114关注 0票数 0

我试图使用NSBezierPath在300x300像素矩形中绘制幂函数曲线,如下所示:

代码语言:javascript
复制
-(void)drawPowerCurve:(float)power points:(int)numbPoints{
    NSBezierPath * path = [NSBezierPath bezierPath];
    [path setLineWidth: 1.0];
    [[NSColor colorWithCalibratedRed:0.0 green:0.0 blue:1.0 alpha:1.0] set];

    NSPoint borderOrigin = {35.5,15.5};
    NSPoint endPoint;
    [path moveToPoint:borderOrigin];
    for(int i = 0; i < numbPoints; i++){
        endPoint.x = borderOrigin.x + (300.0/numbPoints)*(i+1);
        endPoint.y = borderOrigin.y + 300.0*pow(((i+1)/(float)numbPoints), power);
        [path lineToPoint:endPoint];
        [path stroke];
        [path moveToPoint:endPoint];
    }
}

然而,与底部相比,顶部的曲线变薄了。例如,power = 1.8,numbPoints = 50。此外,这条曲线看上去并不像苹果的ColorSync实用工具中显示的曲线那样平滑。当然,我不知道他们是如何用ColorSync绘制曲线的。关于如何改善这些曲线的外观的任何想法(特别是摆脱稀薄)。

编辑--这是一个截图:

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-04-04 05:17:17

stroke从循环中移出,这样您只绘制一次曲线,而不是在它增长时绘制numbPoints次数。同时删除循环中的冗余moveToPointlineToPoint将当前点保留在添加段的末尾。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55506141

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档