Zend PDF:旋转后计算坐标

Zend PDF: calculating coordinates after rotation

无需深入了解太多细节 - 我从 Web 工具获取参数 (x1,x2,y1,y2,a,b,α),我需要使用 [=29 生成 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) 不再是精确坐标,但我不是确定如何计算它们?有什么想法吗?

OP 在评论中确认他对 (x1,y1) 和 ( 使用了相同的值X2,y2) 在他的 rotate 和他的 drawImage 调用中。不过,从他的草图中可以明显看出,后一个调用的坐标必须不同。

幸运的是,我们从 (x1,y1) 到 (X2,y2) 它与那个矩形有相同的中心点。此外,我们有绿色矩形的尺寸 ab

因此,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);