2013-03-27 89 views
3

我在阅读IDML传播时遇到了多个形状。每个形状具有它自己的几何形状,看起来像 -IDML:形状如何存储在IDML文件中?

-<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的形状?

谢谢。

回答

3

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

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

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

+0

再次感谢JcFx! :) – divyanshm 2013-04-01 06:44:15