2013-04-17 4 views
5

ड्राइंग के लिए एक आम तकनीक है I iPhone पर openGL/Cocos2d में दो बिंदुओं के बीच एक खिंचाव/लोचदार रेखा को आकर्षित करने का तरीका जानने का प्रयास कर रहा हूं। इसक्या "खिंचाव" रेखा

enter image description here

कहाँ "बैंड" मिलता है पतली के रूप में लाइन लंबे समय तक हो जाता है की तरह। आईओएस उसी तकनीक का उपयोग करता है जिसका मैं मेल.एप में लक्ष्य रख रहा हूं, रीफ्रेश करने के लिए खींचें।

सबसे पहले, क्या इस तरह की चीज़ का नाम है?

मेरा पहला विचार दो के बीच के कोण के आधार पर शुरुआती और समापन सर्कल के त्रिज्या पर एक बिंदु प्लॉट करना था, और दूरी/2 को नियंत्रण बिंदु के रूप में एक चौकोर बेजियर वक्र खींचना था। लेकिन मैं गणित नहीं हूं इसलिए मैं यह समझने के लिए संघर्ष कर रहा हूं कि नियंत्रण बिंदु कैसे रखें, जो पथ की मोटाई को समायोजित करेगी।

लेकिन एक बड़ी समस्या यह है कि मुझे रंग को रंग से भरने की ज़रूरत है, और ऐसा लगता है कि ओपनजीएल बेजियर वक्र के साथ ऐसा संभव नहीं है जब तक कि मैं कह सकता हूं कि वक्र एक भाग का हिस्सा नहीं लगते हैं आकार भरा जा सकता है।

तो मैंने एक बिंदु सरणी का उपयोग करके बनाई गई एक स्पलीन का उपयोग करना देखा, लेकिन यह गणितीय दर्द की एक पूरी नई दुनिया खोलता है क्योंकि मुझे यह पता लगाना होगा कि पथ के किनारे के सभी बिंदु कहां हैं।

तो मैं उस खरगोश छेद से नीचे जाने से पहले, मैं गीला सोच रहा हूं कि वहां कुछ आसान है जो मैं देख रहा हूं, या अगर कोई मुझे सबसे प्रभावी तकनीक की ओर इंगित कर सकता है।

+0

बस एक विचार: मुझे नहीं लगता कि आपको यहां splines/bezier की आवश्यकता है। वक्रता को देखो, यह एक बहुत बड़े सर्कल के एक छोटे से हिस्से की तरह दिखता है, जो प्रत्येक अंत बिंदु सर्कल के बहुत ऊपर और नीचे से चलता है। तो शायद आप सर्कल के साथ निचोड़ा हुआ हिस्सा "मुद्रित" करने का एक तरीका ढूंढ सकते हैं। जितना अधिक दो अंत बिंदु अलग हो जाते हैं, स्टैम्प सर्कल के त्रिज्या छोटे होते हैं। – LearnCocos2D

+0

चीयर्स, हालांकि डिफ़ॉल्ट आईओएस "रीफ्रेश करने के लिए खींचें" ब्लॉब चीज के करीब दिख रहे हैं, यह निश्चित रूप से उस दृष्टिकोण का उपयोग नहीं कर रहा है। लेकिन मैं आपके सुझाव कुछ जांच कर दूंगा। – gargantuan

+0

क्या आपको इस चीज़ का नाम मिला? –

उत्तर

2

मैं एक "आम" तकनीक है कि लोगों का उपयोग करें, यह गणितीय गणना के अलावा अन्य, लेकिन इस परियोजना, SlimeyRefresh, यह कैसे पूरा करने के लिए एक अच्छा उदाहरण है के बारे में यकीन नहीं है।

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