2011-01-17 10 views
9

मुझे एक चिकनी वक्र द्वारा तीन बिंदुओं को जोड़ने की आवश्यकता है। मैंने स्टैक ओवरफ्लो पर पहले से ही उत्तर दिए गए वही प्रश्नों को देखा है, लेकिन वे सभी Path.quadTo() का उपयोग करने का सुझाव देते हैं। मुझे समझ में नहीं आ रहा है कि इसे सही जवाब क्यों माना जाता है क्योंकि बेजियर वक्र केवल मध्य (नियंत्रण) बिंदु पर पहुंच रहा है लेकिन इसके माध्यम से नहीं जा रहा है। मेरे मामले में मुझे इसके माध्यम से बिल्कुल जाना है। तो मैं इसे कैसे प्राप्त कर सकता हूं?एंड्रॉइड में पेड़ बिंदुओं के माध्यम से मैं वक्र कैसे आकर्षित करूं?

उत्तर

4

सच है, आपको कैटमुल रोम splines की आवश्यकता है जो प्रत्येक बिंदु के माध्यम से जाने की गारंटी है। हालांकि, मुझे एंड्रॉइड एपीआई में उन्हें आकर्षित करने के लिए कोई फंक्शन नहीं पता है। आप quadTo फ़ंक्शन को "चाल" भी कर सकते हैं और इसे वर्चुअल मिडिल पॉइंट पास कर सकते हैं जिसे आप वर्तमान बिंदु और अगले के अनुसार गणना करते हैं।

+1

धन्यवाद Androids में एक एनालॉग है , मैंने पूरी तरह से इंटरनेट की खोज की है और क्वाडटो के लिए नियंत्रण बिंदु के निम्नलिखित गणना के साथ समाप्त हो गया है: // निर्दिष्ट पैरामीटर मान int [] इंटरपोलेट (int x0, int y0, int x1, पर दूसरे बिंदु के साथ तीन बिंदुओं को इंटरपोलेट करें। int y1, int x2, int y2, double t) { डबल t1 = 1.0 -t; डबल टीएसक = टी * टी; डबल denom = 2.0 * टी * टी 1; \t int cx = (int) ((x1 - t1 * t1 * x0 - tsq * x2)/denom); int cy = (int) ((y1 - t1 * t1 * y0 - tsq * y2)/denom); \t नई int [] {cx, cy} लौटाएं; } –

+1

@AndreyNovikov आपको इसे दूसरों की मदद करने के उत्तर के रूप में पोस्ट करना चाहिए – Sameer

0

क्यूबिकटो (या आरक्यूबिक यदि आपको इसे किसी सापेक्ष बिंदु से चाहिए) फ़ंक्शन के बारे में क्या है? http://developer.android.com/reference/android/graphics/Path.html#cubicTo(float, नाव, नाव, नाव, नाव, नाव)

+0

क्यूबिक भी बेजियर स्प्लिंस का उपयोग करता है, जो उसे आवश्यकतानुसार प्रदान नहीं करता है। –

+0

इसमें 3 अंक लगते हैं। – C0deAttack

-1

Here एक बहुत अच्छा, जावास्क्रिप्ट के लिए सचित्र howto है, लेकिन सभी इस्तेमाल किया तरीकों हमेशा की तरह कर रहे हैं और वहाँ एक सुराग के लिए Path Class

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

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