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) 它与那个矩形有相同的中心点。此外,我们有绿色矩形的尺寸 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);
无需深入了解太多细节 - 我从 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) 它与那个矩形有相同的中心点。此外,我们有绿色矩形的尺寸 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);