2013-06-03 51 views
0

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

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

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

谢谢!

- (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]; 
} 

回答

3

二摸 - 持有变量来跟踪你的状态。

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

为了让它真的很有趣,让用户在绘制第二行时用两根手指触摸,然后为这两个控制点赋值。

+0

谢谢,@Wain。只需要找出如何跟踪触摸..因为我有其他乐器(如虚线,箭头),对他们我只需要一个接触。 –

+0

UIGestureRecofnizer或UIView(touchesBegan :)。 – Wain

0

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

+0

谢谢大家!我只是不能存储路径,并在绘制完成后将其改为用两根手指弯曲!我是新开发人员,我只需要一小段代码!通常只从一小段代码中理解))))抱歉! –