से रोटेशन कोण की गणना करता है I इनपुट के रूप में CATransform3D संरचना देकर जेड-अक्ष के आसपास रेडियंस में रोटेशन की गणना कैसे करूं?आईफोनएसडीके कैटर्रांसफॉर्म 3 डी
मूल रूप से मुझे जो चाहिए वह CATransform3DMakeRotation
का दूसरा तरीका है।
से रोटेशन कोण की गणना करता है I इनपुट के रूप में CATransform3D संरचना देकर जेड-अक्ष के आसपास रेडियंस में रोटेशन की गणना कैसे करूं?आईफोनएसडीके कैटर्रांसफॉर्म 3 डी
मूल रूप से मुझे जो चाहिए वह CATransform3DMakeRotation
का दूसरा तरीका है।
यह इस बात पर निर्भर करता है कि आप किस अक्ष पर रोटेशन कर रहे हैं। z- अक्ष के बारे में
रोटेशन के रूप में प्रस्तुत किया जाता है:
a = angle in radians
x' = x*cos.a - y*sin.a
y' = x*sin.a + y*cos.a
z' = z
(cos.a sin.a 0 0)
(-sin.a cos.a 0 0)
(0 0 1 0)
(0 0 0 1)
इतना कोण होना चाहिए एक = atan2 (transform.m12, transform.m11); x- अक्ष के बारे में
रोटेशन:
a = angle in radians
y' = y*cos.a - z*sin.a
z' = y*sin.a + z*cos.a
x' = x
(1 0 0 0)
(0 cos.a sin.a 0)
(0 -sin.a cos.a 0)
(0 0 0 1)
y- अक्ष के बारे में रोटेशन:
a = angle in radians
z' = z*cos.a - x*sin.a
x' = z*sin.a + x*cos.a
y' = y
(cos.a 0 -sin.a 0)
(0 1 0 0)
(sin.a 0 cos.a 0)
(0 0 0 1)
तो बदलना एक परत से जुड़ा हुआ है, तो आप की तरह रोटेशन के मूल्य प्राप्त कर सकते हैं इस प्रकार है:
CGFloat angle = [(NSNumber *)[layer valueForKeyPath:@"transform.rotation.z"] floatValue];
documentation से:
कोर एनिमेशन हो रही है और प्रमुख रास्तों के माध्यम से एक परत के CATransform3D मैट्रिक्स के समान मूल्यों की स्थापना की अनुमति के लिए कुंजी-मान कोडिंग प्रोटोकॉल फैली हुई है। सारणी 4 कुंजी पथ जिसके लिए एक परत को बदलने और sublayerTransform गुण कुंजी-मान कोडिंग और अवलोकन का वर्णन शिकायत
और सही वृत्त का चतुर्थ भाग में एक कोण नहीं देंगे atan2 का उपयोग सुनिश्चित करें बाद में के रूप में atan नहीं हो। –
धन्यवाद, आपके उत्तर से पहले, मैंने सीएएलएयर की एफ़िन ट्रान्सफॉर्म प्रॉपर्टी का उपयोग करने के लिए वापस आ गया था ट्रांसफॉर्म 3 डी को एफ़िनट्रांसफॉर्म में परिवर्तित करें और फिर इस गणना से कोण को बाहर निकालें: http: //stackoverflow.com/questions/2051811/iphone- sdk-cgaffinetransform-getting-the-angle-of-rotation-of-an-object अब मुझे पता है, ट्रांसफॉर्म 3 डी से सीधे गणना कैसे करें। धन्यवाद! – ravinsp
हाँ मैंने पहले साल में इस बारे में सीखा था और मुझे अपने दोस्त से पूछना याद रखना चाहिए कि "वह ऐसा क्यों करेगा, हमें यह जानने की जरूरत है" –