2016-01-07 1 views
5

後の座標を計算する - 私は、Webツールから(α、X1、X2、Y1、Y2、a、b)はパラメータを取得していると私は、PDFドキュメントを生成する必要があり、 Zend_PDFライブラリを使用して、正確な座標に回転して適切に配置された緑色のイメージを含んでいます。ZendのPDF:あまりにも多くの詳細に入るがなければ回転

enter image description here

さて、何を私に混乱することは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

です(**×1 **、** Y1 **)と(**×2 **、** Y2 **)座標:したがって

は、drawImageパラメータに変更する必要がありますあなたの 'rotate'と' drawImage'コールで同じですか?またはあなたのイメージ 'drawImage'の値は – mkl

+0

はい、彼らは同じです...全く異なっている必要があり、その場合には、単に緑の四角形です。 $画像は緑色の長方形ですが、それも当てはまります。私はdrawImage呼び出しが間違った座標を取得することを認識しますが、正しい方法を計算する方法がわかりません。 – Relja

答えて

2

彼は彼のrotateと彼drawImageの呼び出しに同じ(X1Y1)の値と(​​X2Y2)を使用したことをコメントで確認したOP。しかし、彼のスケッチからは明らかですが、後者の呼び出しの座標は異なる必要があります。

幸い、私たちは緑の四角形が、それはその長方形と同じ中心点を持っていること(X2Y2)に(X1Y1)から長方形に内接する方法から知っています。さらに、我々は、緑色の長方形のB寸法を有します。

$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); 
+0

メイト、応答ありがとう!解決策はほぼ完璧です.X座標は完璧ですが、Yはまだ少し回転している必要があります(通常の回転していない座標系で)。 理由と翻訳方法を知っていますか?回転されたシステムのY軸は、元のシステムのXとYの両方の平行移動であるため、drawImageのy1とy2を変更するだけで結果の画像が歪んでしまいます。 – Relja

+0

あなたはYは、まだ分析用のビット*を翻訳する必要*した場合の入力値と結果のPDFを共有していただけますか? – mkl

+0

これまでのところ... @Relja * drawImageのy1とy2を変更するだけで、結果の画像が歪んでいます* - rotateとdrawImageの両方のy値を変更します。 – mkl

関連する問題