如何找出旋转文本框架的坐标

时间:2010-06-07 05:41:43

标签: text coordinates rotation frame adobe-indesign

借助(idml)itemtransform水平/垂直距离和路径点数组,我可以找到文本框架的坐标(x1,y1),(x2,y2),(x3,y3),(x4, Y4)。如果旋转文本框,则项变换值将更改,但路径点数组值相同。我可以通过矩阵[cos(θ)sin(θ)-sin(θ)cos(θ)0 0找到旋转角度,但是我无法得到旋转文本框架的精确坐标。文本框架如下所示。

普通文本框

  <TextFrame Self="u136" ParentStory="u124" ItemTransform="1 0 0 1 101.72727272727272 -349.41818181818184">
        <Properties>
            <PathGeometry>
                <GeometryPathType PathOpen="false">
                    <PathPointArray>
                        <PathPointType Anchor="-101.72727272727272 -46.581818181818164" LeftDirection="-101.72727272727272 -46.581818181818164" RightDirection="-101.72727272727272 -46.581818181818164"/>
                        <PathPointType Anchor="-101.72727272727272 -0.3272727272727103" LeftDirection="-101.72727272727272 -0.3272727272727103" RightDirection="-101.72727272727272 -0.3272727272727103"/>
                        <PathPointType Anchor="115.9090909090909 -0.3272727272727103" LeftDirection="115.9090909090909 -0.3272727272727103" RightDirection="115.9090909090909 -0.3272727272727103"/>
                        <PathPointType Anchor="115.9090909090909 -46.581818181818164" LeftDirection="115.9090909090909 -46.581818181818164" RightDirection="115.9090909090909 -46.581818181818164"/>
                    </PathPointArray>
                </GeometryPathType>
            </PathGeometry>
        </Properties>         

旋转的文字框架

 <TextFrame Self="u136" ParentStory="u124" ItemTransform="0 1 -1 0 320.3805483338268 -125.07900895050204">
        <Properties>
            <PathGeometry>
                <GeometryPathType PathOpen="false">
                    <PathPointArray>
                        <PathPointType Anchor="-101.72727272727272 -46.581818181818164" LeftDirection="-101.72727272727272 -46.581818181818164" RightDirection="-101.72727272727272 -46.581818181818164"/>
                        <PathPointType Anchor="-101.72727272727272 -0.3272727272727103" LeftDirection="-101.72727272727272 -0.3272727272727103" RightDirection="-101.72727272727272 -0.3272727272727103"/>
                        <PathPointType Anchor="115.9090909090909 -0.3272727272727103" LeftDirection="115.9090909090909 -0.3272727272727103" RightDirection="115.9090909090909 -0.3272727272727103"/>
                        <PathPointType Anchor="115.9090909090909 -46.581818181818164" LeftDirection="115.9090909090909 -46.581818181818164" RightDirection="115.9090909090909 -46.581818181818164"/>
                    </PathPointArray>
                </GeometryPathType>
            </PathGeometry>
        </Properties>        

当我将旋转的文本框架的值转换为坐标并在屏幕中绘制时,我没有得到它在原始框架中绘制的确切位置。

任何人都可以帮我找出旋转文本框架的坐标。

提前致谢。

1 个答案:

答案 0 :(得分:0)

TextFrame的ItemTransform属性(a b c d e f)中的值表示2D空间变换矩阵,用于根据以下矩阵乘法公式从TextFrame的内部坐标系转换回父坐标系:

| Xparent |   | a  c  e |   | X |
| Yparent | = | b  d  f | * | Y |
| 1       |   | 0  0  1 |   | 1 |

其中X,Y是TextFrame内部坐标系中的坐标,Xparent和Yparent是父(Spread等)坐标系中的对应坐标。

有关详细信息,请参阅7 Coordinate Systems, Transformations and Units