Нарисуйте прямую линию и создайте линию перетаскивания кривой
Я хотел бы создать инструмент для своего приложения, который сначала рисует прямую линию, а при втором касании и движении пользователь может создать регулируемую кривую линию. Таким образом, идея состоит в том, чтобы установить среднюю точку кривой, когда пользователь касается и перемещается во второй раз.
И я понятия не имею, как проверить второе касание и работать с предыдущим путем.
Этот метод я использую, чтобы нарисовать простую линию
Спасибо!
- (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 ответа
Второе касание - удерживайте переменную для отслеживания вашего состояния.
Кривая - не пытайтесь изменить путь, просто используйте начало и конец первой строки и создайте UIBezierPath
рисовать, когда пользователь перемещает точку касания. Переместите Безье в начальную точку, затем используйте addCurveToPoint:controlPoint1:controlPoint2:
используя конечную точку и текущее местоположение касания.
Чтобы сделать это действительно забавным, позвольте пользователю коснуться двумя пальцами при рисовании второй линии, а затем у вас есть значения для обеих контрольных точек.
Если вам просто нужно возиться со средней точкой линии, изучение квадратичной кривой будет для вас простым, поскольку в ней будет только одна контрольная точка вместо двух. Прежде всего внимательно наблюдайте за характером лечения и в зависимости от вашего выбора (квадратичный или безье) отрегулируйте контрольную точку 1,cp2(если есть), начальную и конечную точки, следующая ссылка поможет вам понять природу кривой Безье очень простым способом.