gpt4 book ai didi

objective-c - NSBezierPath 线变细

转载 作者:行者123 更新时间:2023-12-03 17:33:19 25 4
gpt4 key购买 nike

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

-(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。此外,该曲线看起来并不像 Apple 的 ColorSync Utility 中显示的曲线那样平滑。当然我不知道他们是如何在ColorSync中绘制曲线的。关于如何改善这些曲线的外观(特别是消除稀疏)的任何想法。

编辑--这是屏幕截图:enter image description here

最佳答案

描边移出循环,这样您只需绘制曲线一次,而不是随着曲线的增长而绘制numbPoints次。同时删除循环中多余的 moveToPointlineToPoint 将当前点保留在添加段的末尾。

关于objective-c - NSBezierPath 线变细,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55506141/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com