Есть ли различия в том, как кривые Безье интерпретируются Какао и SVG? - PullRequest
0 голосов
/ 15 ноября 2009

Я определенно новичок в любой графике (возможно, за исключением фотографирования :)), поэтому, пожалуйста, прости, если мое объяснение проблемы, с которой я столкнулся вчера вечером, не очень точное и нестабильное.

Я пытаюсь сгенерировать код в Какао, который бы рисовал векторы на основе файлов SVG. Я перевел SVG-команды в вызовы методов NSBezierPath, но полученная графика не очень хороша ... Форма похожа на базовую, но есть некоторые ... искажения (?). Вероятно, это не проблема сглаживания или значения плоскостности, установленного на стороне какао. Мне было предложено предположить, что проблема может быть вызвана различной интерпретацией контрольных точек кривых Безье методами Какао и SVG - возможно ли это? Или что еще может вызвать проблему?

Ответы [ 2 ]

5 голосов
/ 15 ноября 2009

Кривая SVG для команды является контрольной точкой, контрольной точкой, конечной точкой.

Какао-метод CurveToPoint принимает конечную точку, контрольную точку 1, контрольную точку 2

0 голосов
/ 15 ноября 2009

@ Питер Хоси

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

SVG версия:

<path d="M 100 200 C 100,100 400,100 400,200 z"/> 

Версия с какао:

path = [[NSBezierPath alloc] init]; 
[path moveToPoint:NSMakePoint(100, 200)]; 
[path curveToPoint:NSMakePoint(100, 100) controlPoint1:NSMakePoint(400, 100) controlPoint2:NSMakePoint(400, 200)]; 
[path sePath]; 

Или это моя глупая ошибка, которую я не замечаю :)

// Я не использую «Добавить комментарий» из-за отсутствия форматирования кода.

...