绘制直线并创建曲线拖动线

时间:2013-06-03 20:51:05

标签: ios drawing uibezierpath bezier

我想为我的应用程序创建一个首先绘制直线的工具,然后在第二次触摸时移动用户可以创建一条可调整的曲线。 所以我们的想法是在用户触摸并第二次移动时设置曲线的中点。

我不知道如何检查第二次触摸并使用之前的路径。

这个方法我用来画简单的线

谢谢!

- (void)setInitialPoint:(CGPoint)firstPoint
{
self.firstPoint  = firstPoint;
//[self moveToPoint:firstPoint]; //add yourStartPoint here
///[self addLineToPoint:endPoint];
}

- (void)moveFromPoint:(CGPoint)startPoint toPoint:(CGPoint)endPoint
{
self.lastPoint = endPoint;

   //  [self addLineToPoint:self.lastPoint];// add yourEndPoint here

}

- (void)draw { 
   UIBezierPath *path = [UIBezierPath bezierPath];
//draw a line

[path  moveToPoint:self.firstPoint]; //add yourStartPoint here
[path addLineToPoint:self.lastPoint];// add yourEndPoint here

[self.lineColor setStroke];

[path setLineWidth:3.0];

 [path stroke];
}

2 个答案:

答案 0 :(得分:3)

第二次触摸 - 按住变量来跟踪你的状态。

曲线 - 不要尝试更改路径,只需使用第一行的开头和结尾,并在用户移动触摸点时创建一个UIBezierPath来绘制。将贝塞尔曲线移动到起点,然后使用终点和当前触摸位置使用addCurveToPoint:controlPoint1:controlPoint2:

为了让它变得非常有趣,允许用户在绘制第二行时用两根手指触摸,然后你有两个控制点的值。

答案 1 :(得分:0)

如果你只需要摆弄线的中间点,学习二次曲线对你来说很简单,因为它只有一个控制点而不是两个控制点。首先要仔细观察治疗的性质并依赖于您的选择(二次或贝塞尔曲线)调整控制点1,cp2(如果有),起点和终点 以下链接将帮助您以非常简单的方式理解贝塞尔曲线的本质 link