gpt4 book ai didi

iphone - CoreGraphics 多色线

转载 作者:行者123 更新时间:2023-12-03 19:14:54 69 4
gpt4 key购买 nike

我有以下代码,似乎唯一使用整行的最后一种颜色......我希望颜色在整个过程中不断变化。有什么想法吗?

        CGContextSetLineWidth(ctx, 1.0);

for(int idx = 0; idx < routeGrabInstance.points.count; idx++)
{
CLLocation* location = [routeGrabInstance.points objectAtIndex:idx];

CGPoint point = [mapView convertCoordinate:location.coordinate toPointToView:self.mapView];

if(idx == 0)
{
// move to the first point
UIColor *tempColor = [self colorForHex:[[routeGrabInstance.pointHeights objectAtIndex:idx] doubleValue]];
CGContextSetStrokeColorWithColor(ctx,tempColor.CGColor);
CGContextMoveToPoint(ctx, point.x, point.y);

}
else
{
UIColor *tempColor = [self colorForHex:[[routeGrabInstance.pointHeights objectAtIndex:idx] doubleValue]];
CGContextSetStrokeColorWithColor(ctx,tempColor.CGColor);
CGContextAddLineToPoint(ctx, point.x, point.y);
}
}

CGContextStrokePath(ctx);

最佳答案

CGContextSetStrokeColorWithColor 仅更改上下文的状态,它不执行任何绘制。代码中唯一完成的绘制是通过最后的 CGContextStrokePath 完成的。由于每次调用 CGContextSetStrokeColorWithColor 都会覆盖前一次调用设置的值,因此绘图将使用最后一个颜色集。

您需要创建一个新路径,设置颜色,然后在每个循环中绘制。像这样的事情:

for(int idx = 0; idx < routeGrabInstance.points.count; idx++)
{
CGContextBeginPath(ctx);
CGContextMoveToPoint(ctx, x1, y1);
CGContextAddLineToPoint(ctx, x2, y2);
CGContextSetStrokeColorWithColor(ctx,tempColor.CGColor);
CGContextStrokePath(ctx);
}

关于iphone - CoreGraphics 多色线,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4023709/

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