PDFLib围绕中心

时间:2016-05-26 13:09:00

标签: php pdflib

Pdflib旋转当前左下角的图像或文本等对象。 它可能围绕中心旋转物体?

我尝试了图像对象的position = {center}选项:

$pdf->fit_image($image, $x, $y, 'fitmethod=meet boxsize={'.$w.' '.$h.'} rotate='.($deg).' position={center}')

并计算文本对象的x,y坐标:

$cx = $x + ($w / 2);
$cy = $y + ($h / 2);
$theta = $deg * pi() / 180;
$rx = $x * cos($theta) - $y * sin($theta);
$ry = $x * sin($theta) + $y * cos($theta);
$y = $ry + $cy;
$x = $rx + $cx;

1 个答案:

答案 0 :(得分:0)

上面的解决方案用数学方法计算用于绘制图像的新[左,下]角,但在生成此点时出现了一些问题,因为图像中心[x1,y1]在之后不一样,因为在图像绘制过程中发生了一些奇怪的翻译:

考虑[x0,y0] [左,下]角,[x1,y1]图像中心,[x2,y2]旋转前的图像中心点和[xr,yr]新[左,底部角落

$x0 = $left;
$x1 = $x0 + $width/2.0;

$y0 = $bottom;
$y1 = $y0 + $height/2.0;

$x2 = ($x1 - $x0)*cos($alpha) - ($y1 - $y0)*sin($alpha) + $x0;
$dx = $x2 - $x1;

$y2 = ($x1 - $x0)*sin($alpha) + ($y1 - $y0)*cos($alpha) + $y0;
$dy = $y2 - $y1;

$xr = $x0 - $dx;
$yr = $y0 - $dy;

如果您尝试将图像中心转换为[0,0]并使用其他代码进行旋转:

$x0 = $left;
$x1 = $x0 + $width/2.0;

$y0 = $bottom;
$y1 = $y0 + $height/2.0;

$xr = ($x0 - $x1)*cos($alpha) - ($y0 - $y1)*sin($alpha) + $x1;
$yr = ($x0 - $x1)*sin($alpha) + ($y0 - $y1)*cos($alpha) + $y1;

显示了相同的结果。

我不知道这个问题的原因是怎么回事。请一些身体帮助!