2011-01-02 11 views
20

मैं यह नहीं समझ सकता कि CATransform3DMakeRotation() का उपयोग कैसे करें। क्या कोई मुझे बता सकता है कि इसका उपयोग कैसे करें?कैटरन्सफॉर्म 3 डीमेकोटेशन का उपयोग कैसे किया जाता है?

मुझे लगता है कि पहला पैरामीटर कोण है, है ना? लेकिन अन्य तीन क्या हैं?

उत्तर

34

पहला रेडियंस में कोण है अन्य 3 पैरामीटर धुरी (एक्स, वाई, जेड) हैं। इसलिए उदाहरण के लिए आप z अक्ष के चारों ओर 180 डिग्री बारी बारी से करने सिर्फ इस तरह फ़ंक्शन को कॉल चाहते हैं:

myView.layer.transform = CATransform3DMakeRotation(M_PI, 0.0, 0.0, 1.0); 

और दृश्य आपको घुमाना चाहते की संपत्ति को बदलने के लिए परिणाम लागू होते हैं।

+1

देखें समारोह की परिभाषा लिए भी कोर एनिमेशन कार्य संदर्भ: http://developer.apple.com/library/mac/documentation /Cocoa/Reference/CoreAnimation_functions/Reference/reference.html#//apple_ref/c/func/CATransform3DMakeRotation –

+0

तो मूल रूप से मैं केवल कोण सेट करता हूं और x, y, या z पर 1.0 डालता हूं जिसे मैं उपयोग करना चाहता हूं? क्या यह हमेशा 1.0 है? –

+3

@Dan - नहीं, यह अक्षों के लिए हमेशा 1.0 नहीं है। एक्स, वाई, और जेड घटक एक अक्ष को परिभाषित करते हैं जिसके बारे में घूर्णन होता है। एक घटक के लिए 1.0 सेट करना, और दूसरे को 0.0 पर छोड़ना, एक्स, वाई, या जेड अक्ष के बारे में घूर्णन को परिभाषित करता है, लेकिन आप किसी भी मनमानी दिशा के बारे में घूम सकते हैं। यह आपको वास्तव में 3-डी तरीके से विचारों और परतों में हेरफेर करने देता है। –

3

वे धुरी का प्रतिनिधित्व करते हैं जिसके बारे में आप घूमना चाहते हैं। स्क्रीन के विमान में घूमने के लिए 0,0,1 का प्रयोग करें।

5

आप शायद इन उपयोगी जब रेडियंस का उपयोग कर मिल जाएगा:

CGFloat DegreesToRadians(CGFloat degrees) 
{ 
    return degrees * M_PI/180; 
}; 

CGFloat RadiansToDegrees(CGFloat radians) 
{ 
    return radians * 180/M_PI; 
}; 
संबंधित मुद्दे