2016-01-07 13 views
5

बहुत अधिक जानकारी प्राप्त किए बिना - मुझे वेब उपकरण से पैरामीटर (x1, x2, y1, y2, a, b, α) मिल रहा है और मुझे एक पीडीएफ दस्तावेज उत्पन्न करने की आवश्यकता है, Zend_PDF लाइब्रेरी का उपयोग करके जिसमें हरे रंग की छवि घूमती है और सटीक निर्देशांक पर ठीक से तैनात होती है।ज़ेड पीडीएफ: घूर्णन के बाद निर्देशांक की गणना

enter image description here

अब, क्या मुझे confuses कि 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

हैं (** x1 **, ** y1 **) और (** x2 **, ** y2 **) निर्देशांक:

इस प्रकार, drawImage मापदंडों के परिवर्तित किया जाना चाहिए आपके 'घुमाने' और 'drawImage' कॉल में वही है? या आपकी छवि सिर्फ हरा आयताकार है, जिस स्थिति में 'drawImage' के मान पूरी तरह से अलग होना चाहिए ... – mkl

+0

हां, वे वही हैं। $ छवि एक हरा आयताकार है, यह भी सच है। मुझे एहसास है कि ड्रॉ इमेज कॉल गलत निर्देशांक प्राप्त करता है, लेकिन मुझे यकीन नहीं है कि सही लोगों की गणना कैसे करें। – Relja

उत्तर

2

ओपी एक टिप्पणी में पुष्टि की है कि वह अपने rotate और उसके drawImage कॉल में (x1, y1) और (X2, y2) के लिए एक ही मूल्यों का इस्तेमाल किया। यह अपने स्केच से काफी स्पष्ट है, हालांकि, बाद के कॉल के निर्देशांक अलग-अलग होना चाहिए।

सौभाग्य से हम जिस तरह से हरे रंग की आयत (X2, y2) यह है कि आयत के रूप में ही केंद्र बिंदु है कि करने के लिए (x1, y1) से आयत में लिखा हुआ है से पता है। इसके अलावा, हमारे पास और बी हरे आयत के आयाम हैं।

$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

मेट, प्रतिक्रिया के लिए धन्यवाद! समाधान लगभग सही है - एक्स समन्वय सही है, लेकिन वाई को अभी भी थोड़ा नीचे अनुवाद किया जाना चाहिए (नियमित रूप से अप्रत्याशित समन्वय प्रणाली में)। क्या आप शायद जानते हैं कि इसका अनुवाद क्यों और कैसे करें? ड्रॉ इमेज में केवल y1 और y2 को बदलना परिणामस्वरूप छवि को स्कूज़ करता है, क्योंकि घूर्णन प्रणाली में वाई अक्ष मूल प्रणाली में एक्स और वाई दोनों में अनुवाद है। – Relja

+0

क्या आप इनपुट मानों और परिणामस्वरूप पीडीएफ को ऐसे मामले के लिए साझा कर सकते हैं जिसमें * वाई को अभी भी विश्लेषण के लिए थोड़ा सा अनुवाद किया जाना चाहिए? – mkl

+0

यह कहा गया है ... @Relja * ड्रॉ में केवल y1 और y2 को बदलना इमेज परिणामस्वरूप छवि को स्कूज़ करता है * - घुमावदार और drawImage दोनों के लिए वाई मानों को बदलें। – mkl

संबंधित मुद्दे