gpt4 book ai didi

ios - 如何在 CGContext CGMutablePathRef 上绘制顶点?

转载 作者:行者123 更新时间:2023-11-28 22:58:53 24 4
gpt4 key购买 nike

当用户输入点击以指定顶点时,我正在绘制一组连接线。我正在构建一个 CGMutablePathRef

- (void)addPointToCGMPR: (CGPoint)p
forNewPolygon: (BOOL)newPoly
{
if (newPoly)
{
CGPathMoveToPoint(cgmpr, NULL, p.x, p.y);
}
else
{
CGPathAddLineToPoint(cgmpr, NULL, p.x, p.y);
}
[self setNeedsDisplay];
}

drawRect:然后在每个点输入后调用,上下文CGMutablePathRef被添加到一个CGContext中显示

- (void)drawRect:(CGRect)rect
{
// Set up a context to display
CGContextRef context = UIGraphicsGetCurrentContext();
CGContextAddPath(context, cgmpr);

CGContextSetLineWidth(context, 1);
CGContextStrokePath(context);

// If NOT empty then Close the context so that box comparison can occur later
if (!CGContextIsPathEmpty(context))
{
CGContextClosePath(context);
}
}

正如人们所期望的那样,我在屏幕上出现了线条。我的麻烦是,在用户选择第一个点后,屏幕上没有任何渲染,并且直到输入第二个点后,用户才知道系统是否得到了他的第一个选择。我希望系统在输入下一个点之前渲染第一个点。我还希望系统以一种视觉上截然不同的方式渲染每个选取的顶点——现在我没有渲染顶点,只有线条。有没有办法让 CGContext 渲染点?有没有办法指定呈现这些点的样式?谢谢。

最佳答案

您可以随意绘制任何您想要代表点的内容:小正方形、小圆圈、图钉图像等。您已经知道如何在上下文中绘制;只需循环你的点并绘制它们,但你希望它们出现。对于这样的事情,我个人倾向于使用 CGContextFillEllipseInRect。对于每个点,制作一个围绕该点的矩形并绘制它:

CGFloat pointSize = 4;
CGRect pointRect = CGRectMake(point.x - pointSize / 2, point.y - pointSize / 2, pointSize, pointSize);
CGContextFillEllipseInRect(context, pointRect);

关于ios - 如何在 CGContext CGMutablePathRef 上绘制顶点?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10324373/

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