Нарисуйте прямую линию и создайте линию перетаскивания кривой

Я хотел бы создать инструмент для своего приложения, который сначала рисует прямую линию, а при втором касании и движении пользователь может создать регулируемую кривую линию. Таким образом, идея состоит в том, чтобы установить среднюю точку кривой, когда пользователь касается и перемещается во второй раз.

И я понятия не имею, как проверить второе касание и работать с предыдущим путем.

Этот метод я использую, чтобы нарисовать простую линию

Спасибо!

- (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(если есть), начальную и конечную точки, следующая ссылка поможет вам понять природу кривой Безье очень простым способом.

Другие вопросы по тегам