Zend PDF:计算旋转后的坐标

时间:2016-01-07 16:06:35

标签: pdf zend-framework rotation coordinates draw

没有太多细节 - 我从Web工具获取参数(x1,x2,y1,y2,a,b,α),我需要使用包含绿色的Zend_PDF库生成PDF文档图像旋转并正确定位在精确坐标上。

enter image description here

现在,令我困惑的是,Zend不允许旋转元素,而是旋转纸张。所以,我认为轮换需要像这样完成

$page->rotate($x1 + ($x2 - $x1) / 2, $y1 + ($y2 - $y1) / 2, - deg2rad($rotation));

因为我们希望图像的中心是旋转点,然后我们以相反的方向旋转它,这样得到的图像就会得到正确的旋转。

我遇到麻烦的棘手部分就是吸引它。通过简单的调用

$page->drawImage($image, $x1, $y1, $x2, $y2);

我得到的结果显示在图表上 - 结果图像也需要翻译,因为(x1,y1)和(x2,y2)不再是精确的坐标,但我不知道如何计算它们?有什么想法吗?

1 个答案:

答案 0 :(得分:2)

OP在评论中证实他使用相同的值( x1 y1 )和( X2 y2 )在他的rotate和他的drawImage来电中。但是,从他的草图中可以明显看出,后者调用的坐标必须不同。

幸运的是,我们知道绿色矩形的方式是从( x1 y1 )到( X2 y2 )它与该矩形具有相同的中心点。此外,我们还有绿色矩形的尺寸 a b

因此,drawImage参数必须更改为:

$page->drawImage($image, $x1 + ($x2 - $x1) / 2 - $a / 2
                       , $y1 + ($y2 - $y1) / 2 - $b / 2
                       , $x1 + ($x2 - $x1) / 2 + $a / 2
                       , $y1 + ($y2 - $y1) / 2 + $b / 2);