2015-04-09 1 views
0

Мне нужно преобразовать UIBezierPath в SVG. У меня UIBezierPath внутренне имеет коллекцию кубических траекторий безье, как подпуты. эти подпапки, когда они образуют вместе, образуют замкнутый путь, то есть конечная точка последнего кубика-безье совпадает с начальной точкой первого кубического безье.Подпуты UIBezierPath, которые образуют замкнутый путь, не могут быть представлены в SVG

Когда я рисую этот путь на CAShapeLayer с некоторым цветом заливки, общий путь заполняется заданным цветом правильно.

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

Я попытался поместить эти svg кубический-beizer путь внутри g-элемента, который тоже не работал. как показано ниже

<g> 
<path d="M1013.3,1228.7 C1007.1,1238.4 991.4,1242.6 984.2,1242.6" /> 
<path d="M984.2,1233.6 C995.1,1237.3 1008.3,1231.7 1013.2,1231.7" /> 
<path d="M1013.2,1221.3 C1018.0,1210.9 1013.8,1197.1 1004.0,1197.1" /> 
</g> 

Как решить эту проблему? любые входы оцениваются.

Спасибо,

+1

Не можете ли вы создать только один путь, содержащий все атрибуты d, объединенные вместе? –

+0

Да, я понял, после публикации вопроса о том, что мы можем связать субпаты с основными путями, спасибо! – naiveCoder

ответ

1

Я не уверен, чтобы понять, но вы можете использовать как много Безье путь, как вы хотите, в одной и той же кривой. Вот путь: http://jsfiddle.net/74os2um3/

Просто введите его <path> и добавьте Z, чтобы закрыть его.

<path d="M1013.3,1228.7 C1007.1,1238.4 991.4,1242.6 984.2,1242.6 L984.2,1233.6 C995.1,1237.3 1008.3,1231.7 1013.2,1231.7 L1013.2,1221.3 C1018.0,1210.9 1013.8,1197.1 1004.0,1197.1 Z" /> 
+0

Да, мы могли бы это сделать! мой плохой, я должен был бы больше подумать о деталях Path. Спасибо за предоставление информации. – naiveCoder