2009-02-20 13 views
23

दोनों के बीच क्या अंतर है?CATransform3D बनाम CGAffineTransform?

मुझे यकीन है कि वे पक्ष-विपक्ष, और स्थितियों है कि वे में बेहतर प्रदर्शन करने वाले हैं हूँ।

किसी भी संसाधन है कि दोनों के बीच तुलना?

क्या एनीमेशन के लिए बेहतर है (मुझे कैट्रानफॉर्म 3 डी की कल्पना है)? क्यूं कर?

मुझे लगता है कि मैंने कहीं पढ़ा है कि पाठ स्पष्टता एक मुद्दा हो सकता है, पाठ स्केलिंग में एक बेहतर है?

उत्तर

20

जैसा कि एमएसएन ने कहा, वे विभिन्न मामलों में उपयोग किए जाते हैं। CGAffineTransform का उपयोग NSViews, UIViews, और अन्य 2-डी कोर ग्राफिक्स तत्वों के 2-डी हेरफेर के लिए किया जाता है।

कैटरन्सफॉर्म 3 डी कोर एनीमेशन संरचना है जो कैलियर के अधिक जटिल 3-डी मैनिप्लेशंस कर सकती है। CATransform3D में एक ओपनजीएल मॉडल व्यू मैट्रिक्स के समान आंतरिक संरचना है, जो समझ में आता है कि जब आप महसूस करते हैं कि कोर एनीमेशन ओपनजीएल पर बनाया गया है (कैलियर ओपनजीएल बनावट आदि के लिए रैपर हैं)। मैंने पाया है कि ऐप्पल द्वारा प्रदान किए जाने वाले कुछ अच्छे सहायक कार्यों के साथ आंतरिक संरचना की यह समानता आपको कुछ साफ ओपनजीएल अनुकूलन करने दे सकती है, क्योंकि मैं here पोस्ट करता हूं।

जब यह जो प्रयोग करते हैं, अपने आप से पूछना अगर आप एक 2-डी अंतरिक्ष (CGAffineTransform) में प्रत्यक्ष या 3-डी (CATransform3D) में अंतर्निहित कोर एनिमेशन परतों के साथ विचारों के साथ काम करने के लिए जा रहे हैं चुनने के लिए नीचे आता है। मैं अक्सर CATransform3D का उपयोग करता हूं, लेकिन ऐसा इसलिए है क्योंकि मैं कोर एनीमेशन के साथ बहुत समय बिताता हूं।

7

एक रैखिक 2 डी परिवर्तन के लिए है, दूसरा तीन आयामी अनुमानित परिवर्तनों के लिए है। कम से कम यही मैं दस्तावेज से प्राप्त कर सकता हूं।

यदि आपको स्क्रीन पर प्रक्षेपित 3 डी प्रस्तुत करने की आवश्यकता नहीं है, तो एफ़िन ट्रांसफॉर्म का उपयोग करें। अन्यथा, 3 डी ट्रांसफॉर्म का उपयोग करें। 3 डी ट्रांसफॉर्म अनिवार्य रूप से एक 4x4 मैट्रिक्स है, जबकि 2 डी एफ़िन एक 3x2 है।

+0

2 डी एफ़िन आमतौर पर 3 चौड़ा x 2 ऊंचा होता है (नीचे पंक्ति में एक अदृश्य अंतर्निहित पहचान के साथ)। – plinth

+0

मुझे झिलमिलाहट/कम फ्रेमरेट के साथ समस्या हो रही थी और यह इसे ठीक कर दिया! –

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