我想为我的应用程序创建一个首先绘制直线的工具,然后在第二次触摸时移动用户可以创建一条可调整的曲线。 所以我们的想法是在用户触摸并第二次移动时设置曲线的中点。
我不知道如何检查第二次触摸并使用之前的路径。
这个方法我用来画简单的线
谢谢!
- (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];
}
答案 0 :(得分:3)
第二次触摸 - 按住变量来跟踪你的状态。
曲线 - 不要尝试更改路径,只需使用第一行的开头和结尾,并在用户移动触摸点时创建一个UIBezierPath
来绘制。将贝塞尔曲线移动到起点,然后使用终点和当前触摸位置使用addCurveToPoint:controlPoint1:controlPoint2:
。
为了让它变得非常有趣,允许用户在绘制第二行时用两根手指触摸,然后你有两个控制点的值。
答案 1 :(得分:0)
如果你只需要摆弄线的中间点,学习二次曲线对你来说很简单,因为它只有一个控制点而不是两个控制点。首先要仔细观察治疗的性质并依赖于您的选择(二次或贝塞尔曲线)调整控制点1,cp2(如果有),起点和终点 以下链接将帮助您以非常简单的方式理解贝塞尔曲线的本质 link