Я использую средство чтения XML в сочетании с модулем SimpleIDML в python, чтобы читать и записывать в файл IDML. При этом мне нужно будет прочитать геометрические границы (сверху, слева, снизу и справа от объекта) из указанного файла. Просматривая файл XML для распространения, я нашел этот код:
<Properties>
<PathGeometry>
<GeometryPathType PathOpen="false">
<PathPointArray>
<PathPointType Anchor="159.92000000000002 -235.728" LeftDirection="157.85224590848 -235.728" RightDirection="161.98775409152 -235.728"/>
<PathPointType Anchor="163.66400000000004 -239.47200000000004" LeftDirection="163.66400000000004 -237.40424590848" RightDirection="163.66400000000004 -241.53975409152002"/>
<PathPointType Anchor="159.92000000000002 -243.21600000000007" LeftDirection="161.98775409152 -243.21600000000007" RightDirection="157.85224590848 -243.21600000000007"/>
<PathPointType Anchor="156.176 -239.47200000000004" LeftDirection="156.176 -241.53975409152002" RightDirection="156.176 -237.40424590848"/>
</PathPointArray>
</GeometryPathType>
</PathGeometry>
</Properties>
Похоже, что это код для Oval
объекта в схеме IDML. Из того, что я могу видеть из спецификаций , эти точки определяют кривую Безье. Однако я не знаком с кривыми Безье и не знаю, как я мог бы преобразовать это в геометрические границы для самого Oval
.
У кого-нибудь есть функция в Python для получения геометрических границ из этих координат в дюймах? Кроме того, есть ли способ преобразовать набор геометрических границ в эти обозначения, если я хочу перемещать / изменять размеры этих овалов?
Обновление: по-видимому, каждый объект также имеет свойство "ItemTransform". Это может быть необходимо для расчета?