यह सीएलएयर, कोर एनीमेशन फ्रेमवर्क का उपयोग करके आईफोन में 3 डी क्यूब्स पर मेरा दूसरा प्रश्न है, उद्देश्य-सी में लिखा गया है। मेरे पहले प्रश्न के लिए कृपया यहां 3D Cube Problem! Part 1 पर जाएं।3 डी क्यूब समस्या, भाग 2
मैं इस लिंक
http://www.sunsetlakesoftware.com/2008/10/22/3-d-rotation-without-trackball
समस्या है मेरी घन घूर्णन कर रहा है एक्स अक्ष में चित्र में दिखाया गया गुलाबी रेखा के साथ से मेरी 3 डी घन बारी बारी से करने ब्रैड Larsons कोड का उपयोग कर रहा हूँ।
लेकिन मैं चित्र में दिखाया गया काला रेखा के साथ एक्स अक्ष के चारों ओर घुमाने के लिए चाहते हैं।
अब मेरे कोड में मेरे पास मेरे दृश्य पर कोई गुलाबी रेखा या काला रेखा नहीं है, इसलिए कोई भी कृपया इसके साथ मेरी सहायता कर सकता है।
इसे यहाँ मदद करता है touchesMoved:
विधि में मेरी घन घूर्णन के लिए कोड
- (void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event
{
CGPoint location = [[touches anyObject] locationInView:self];
CATransform3D currentTransform = currentLayer.sublayerTransform;
CGFloat displacementInX = location.x - previousLocation.x;
CGFloat displacementInY = previousLocation.y - location.y;
CGFloat totalRotation = sqrt(displacementInX * displacementInX + displacementInY * displacementInY);
CGFloat x = (displacementInX/totalRotation) * currentTransform.m12 + (displacementInY/totalRotation) * currentTransform.m11;
CATransform3D rotationalTransform = CATransform3DRotate(currentTransform, totalRotation * M_PI/180.0, x, y, 0);
currentLayer.sublayerTransform = rotationalTransform;
}
previousLocation एक CGPoint
touchesBegan:
विधि में प्रारंभ है, और currentLayer CALayer
जहां मैं इस घन बनाया है है।
आपकी मदद के लिए धन्यवाद।
पीएस। यदि आप जानना चाहते हैं कि मैंने इस घन को कैसे बनाया है तो मुझे
मुझे यह जानना अच्छा लगेगा कि आपने घन कैसे बनाया है। मैं आपसे एक समान काम करने की कोशिश कर रहा हूं। अब तक कोई प्रगति? – Jeremy
मैंने प्रोजेक्ट को स्क्रैप किया है लेकिन मुझे लगता है कि मैं आपको क्वार्ट्ज कोर में घन बनाने के लिए कोड दे सकता हूं। – Robin
अरे, मुझे 3 डी और सभी में 'कैलियर' घूर्णन करने वाला एक बहुत ही समान कोड मिला, लेकिन मैंने साइमन ली के सुझाव के रूप में 'एंकरपॉइंट' को बदलकर समस्या हल की। आपने इसके साथ कुछ गलत किया होगा। कृपया परत निर्माण कोड साझा करें, और मैं इसे हल कर दूंगा ... या, यदि आवश्यक हो तो मैं अपना स्वयं का घन कर सकता हूं। – Mazyod