2013-03-27 30 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