没有太多细节 - 我从Web工具获取参数(x1,x2,y1,y2,a,b,α),我需要使用包含绿色的Zend_PDF库生成PDF文档图像旋转并正确定位在精确坐标上。
现在,令我困惑的是,Zend不允许旋转元素,而是旋转纸张。所以,我认为轮换需要像这样完成
$page->rotate($x1 + ($x2 - $x1) / 2, $y1 + ($y2 - $y1) / 2, - deg2rad($rotation));
因为我们希望图像的中心是旋转点,然后我们以相反的方向旋转它,这样得到的图像就会得到正确的旋转。
我遇到麻烦的棘手部分就是吸引它。通过简单的调用
$page->drawImage($image, $x1, $y1, $x2, $y2);
我得到的结果显示在图表上 - 结果图像也需要翻译,因为(x1,y1)和(x2,y2)不再是精确的坐标,但我不知道如何计算它们?有什么想法吗?
答案 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);