IDML:如何将形状存储在IDML文件中?

时间:2013-03-27 05:44:34

标签: geometry idml

我在阅读IDML点差时遇到过多种形状。每个Shape都有自己的几何图形 -

-<PathGeometry> 
   -<GeometryPathType PathOpen="false"> 
      -<PathPointArray> 
          <PathPointType RightDirection="-611.5 1548.5" LeftDirection="-611.5 1548.5" Anchor="-611.5 1548.5"/> 
          <PathPointType RightDirection="-611.5 2339.5" LeftDirection="-611.5 2339.5" Anchor="-611.5 2339.5"/>
          <PathPointType RightDirection="-533.3 2339.5" LeftDirection="-533.3 2339.5" Anchor="-533.3 2339.5"/> 
          <PathPointType RightDirection="-533.3 1548.5" LeftDirection="-533.3 1548.5" Anchor="-533.3 1548.5"/> 
       </PathPointArray> 
   </GeometryPathType>
 </PathGeometry>

对于矩形,它是微不足道的(如上例所示),其中<PathPoint>元素中的每个属性都指向矩形中的终点。其他形状会发生什么?换句话说,RightDirection,LeftDirection和Anchor属性表示什么?有没有办法确定它在PathPointArray上的形状是什么?

感谢。

1 个答案:

答案 0 :(得分:3)

每个IDML PathPointType都是立方bezier curve上的节点。控制点和锚点的组合定义了线的终点和曲率。 IDML中的所有线都被定义为它们是曲线,但是,正如您所注意到的,直线的控制点和锚点是相同的。直线多边形(例如三角形)的定义方式相同。

IDML只有一小部分形状类型(矩形,椭圆,图形线,多边形 - 参见规范中的10.3.1。)。您可以通过一次绘制一行来从IDML绘制任何形状,但为矩形和椭圆创建单独的例程更有效。

还请注意PathOpen="false"元素上的GeometryPathType。为了提高效率,未定义形状中的最后一行 - 如果PathOpen == false,您将创建从最终点到第一行的行。