2016-05-26 8 views
1

Pdflib dreht Objekte wie Bilder oder Texte derzeit unten links. Es ist möglich, Objekte um das Zentrum zu drehen?PDFLib dreht Bild/Text um Mittelpunkt

ich versuchte position = {center} Option für Bildobjekte:

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

und x berechnen, y für Textobjekte Koordinaten:

$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; 

Antwort

0

die Lösung oben mathematisch die neuen [linken berechnen, bottom] -Ecke verwendet, um das Bild zu zeichnen, trat aber ein Problem während der Generierung dieses Punktes auf, weil die Bildmitte [x1, y1] nicht gleich nach ist, weil während der Bildaufnahme etwas seltsame Übersetzung auftrat:

berücksichtigen [x0, y0] die [linke, untere] Ecke, [x1, y1] die Bildmitte, [x2, y2] den Bildmittelpunkt vor der Drehung und [xr, yr] die neue [links, unten Ecke]

$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; 

Wenn yout auf [0,0 de Bildmitte versuchen translate] und dreht mit diesem anderen Code:

$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; 

das gleiche Ergebnis zeigt.

Ich weiß nicht, wie die Ursache dieses Problems. Irgendeine Körperhilfe, bitte!