我在当前图形上下文中有一个贝塞尔路径,我想将其存储为UIBezierPath或CGPath。你知道如何从CGContextRef中获取路径吗? 最佳答案 您可以使用CGContextCopyPath复制上下文的当前路径。没有复制剪切路径的功能。实际上,如果您使用了CGContextClipToMask,则剪辑区域不会由路径定义。 关于ios-从CGContextRef获取UIBezierPath或CGPath,我们在StackOverflow上找到一个类似的问题:
我在iOS中用touchesMoved()方法编写了一个绘图程序。CGContextAddPath(UIGraphicsGetCurrentContext(),path);CGPathMoveToPoint(path,NULL,lastPoint.x,lastPoint.y);CGPathAddLineToPoint(path,NULL,lastPoint.x,lastPoint.y);CGContextDrawPath(UIGraphicsGetCurrentContext(),kCGPathStroke);如何清除绘制的路径并恢复原始View? 最佳答案
我必须创建一个CGPathRef来模拟SpriteKit中的物理属性。我正在尝试通过一半圆形加一半椭圆形创建蛋形路径。鸡蛋的比例是0.4(半圆底部)到0.6(半椭圆上部);但是,我不知道为什么什么都没有发生。下面的代码是路径的创建:self.egg=[SKSpriteNodespriteNodeWithImageNamed:IMAGE_NAME_EGG];[self.eggsetScale:0.2];self.egg.position=CGPointMake(self.size.width/2,self.size.height-self.egg.size.height/2);self.
我正在尝试找出一种添加或附加路径(我已经创建的)的方法,并且能够以某种方式设置绘制路径的位置。这是我正在谈论的例子://everythingherecanbecompiledinaregularUIViewController//thisexampleisverytrivialbutitillustratesbasicallywhatIwanttodoCGRectpreMadeRect=CGRectMake(0.0f,0.f,50.f,50.f);CGPathRefpreMadePath=CGPathCreateWithEllipseInRect(preMadeRect,NULL);U
我正在尝试使用CGPathAddCurveToPoint创建一个完美的15点半径的右半圆,如下所示:CGPathMoveToPoint(path,NULL,0,0);CGPathAddCurveToPoint(path,NULL,15,0,15,30,0,30);它从圆圈的顶部中间开始。然后将第一个控制点设置为圆边界框的右上角。第二个控制点设置在圆边界框的右下角。圆在边界框的底部中间结束。但绘制时,圆圈呈鸡蛋状。如何制作一个完美无瑕的右半球,从0,0点开始向右移动到0,30点结束? 最佳答案 CGPathAddCurveToPoin
我的目标是创建一个与SKSpriteNode的轮廓匹配的CGPath。这对于创建SKSpriteNode的发光/轮廓以及物理路径很有用。我有过这样的想法,但我并没有真正使用CIImage,所以我不知道是否有一种方法可以在像素级别访问/修改图像。然后也许我可以将这样的东西移植到Objective-C中:http://www.sakri.net/blog/2009/05/28/detecting-edge-pixels-with-marching-squares-algorithm/也对其他方法持开放态度,这些方法使这个过程自动化,而不是我为我为物理或轮廓/发光效果制作的每个Sprite创
我正在尝试实现类似于附件的图像,在该图像中,圆圈是动画的,具体取决于您的水平进度,然后将标签附加到动画路径的末端,以显示获得的体验和圆圈的未缩写部分展示其余的经验。我的圆圈是动画的,但是很难提出解决标签出现在正确位置的解决方案。我已经尝试将标签的位置设置为路径。CurrentPoint,但这似乎总是是绘制路径的开始,而不是末端。关于如何实现这一目标的任何指示都将是很棒的!看答案我一直在研究您的问题,首先要实现这一目标,您必须为path真正的道路,不仅是strokeEnd,如果您仅动画strokeEnd您的path.currentPoint将始终返回路径的圆端点,以使您需要制作一个键框架动画为“
我用CGPath和CAShapeLayer做了一个绘画(绘图屏幕),现在我的客户想要可缩放的输出图像,我找到了SVGKitSVGKit但我不知道如何使用这个库。我没有在库示例中找到和示例!有谁知道如何使用这个库将CGPath转换为SVG或者可以给我一个教程?提前致谢! 最佳答案 您可以从寻找atthisfileonGitHub开始.它有一个将CGPathRef转换为SVG路径的d属性的例程。我写的。类方法的签名是+(NSString*)svgPathFromCGPath:(CGPathRef)aPath;[更新:在下面添加了代码片段
我有一个方法可以像这样从CGPathRef返回NSData...+(NSData*)createPDFDataWithCGPath:(CGPathRef)pathmediaBox:(CGRect)mediaBox{CFMutableDataRefdata=NULL;if(path){CFAllocatorRefallocator=NULL;data=CFDataCreateMutable(allocator,0);CGDataConsumerRefconsumer=CGDataConsumerCreateWithCFData(data);CGContextRefcontext=CGPD
我想画一条动态宽度的线,如附图所示。最好的方法应该是什么。?更新:我的任务是在手指移动时画线。并且线宽随着滑动速度的变化而变化。两者(线宽和手指滑动速度)成正比。 最佳答案 由于您发布的图像没有任何一致的高宽比例来计算和更改,我怀疑这无法实现。在其他解决方案中,您可以绘制一条固定像素的线,比如2个像素,如果线到中心,则根据绘制的长度扩大宽度,然后再次从中心点开始缩小到终点。您需要查看x坐标之间的差异,否则如果使用高节点绘制正弦波,线宽将相互重叠。编辑:Thislink那么你可能会感兴趣。你可以根据需要修改它,它在cocos2d中。