2013-05-27 2 views
0

У меня есть два CGPoints. Мне нужно нарисовать кривую от одного к другому. Как это сделать? Основная графика или путь Безье? Если да, мне нужно некоторое руководство, пожалуйста. Благодарим вас за помощь.Плавная кривая между двумя точками?

+0

Что вы хотите нарисовать - это путь Безье. , но когда вы говорите кривую, могут быть тысячи гладких кривых, проходящих через две точки. Кривая Безье всегда имеет две контрольные точки, кроме конечных точек. Контрольные точки определяют, как изгибается кривая. Так что я просто хочу, чтобы гладкая кривая, проходящая через две точки, принимала произвольные контрольные точки. Или укажите контрольные точки, которые определяют, как кривая должна изгибаться. Если есть много очков, то то, что вы ищете, это сплайн безье. –

+0

С двумя точками, одним началом и одним концом, я не могу просто нарисовать кривую с небольшим изгибом? –

+2

Вам нужно хотя бы один дополнительный пункт, чтобы указать **, сколько ** вы хотите, чтобы он согнулся. – lnafziger

ответ

2

Использовать UIBezierPath или CGPath. UIBezierPath работает как NSBezierPath на OS X. на ваш взгляд, в DrawRect: метод, Объявляем объект

UIBezierPath *aPath = [UIBezierPath bezierPath]; 

Затем запустите первую точку.

[aPath moveToPoint: startPoint]; 

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

Существует два вида. кубической кривой

[aPath addCurveToPoint: aDestinationPoint controlPoint1: aControlPoint controlPoint2: anotherControlPoint]; 

Квадратичные кривой

[aPath addQuadCurveToPoint:aDestinationPoint controlPoint: aLonelyControlPoint]; 

Наконец, вызовите метод набора на UIColor (NSColor на Mac). Затем проведите или заполните путь.

[aPath stroke]; 

Возможно, вы также захотите установить ширину хода.

Помните рисунок задом наперед процедурно, и если вы хотите другой цвет установления вызова на другой цвет до следующей команды рисования заливки или обводки

версия CG событий похожа, но более запутанным.

http://developer.apple.com/library/ios/documentation/2ddrawing/conceptual/drawingprintingios/BezierPaths/BezierPaths.html

+0

Большое спасибо. –

Смежные вопросы