2011-11-21 22 views
9

के लिए वाई प्राप्त करें मेरे पास एक घन बेजियर वक्र है जहां पहले और अंतिम बिंदु दिए गए हैं (अर्थात् पी 0 (0,0) और पी 3 (1,1))। अन्य दो बिंदु इस प्रकार परिभाषित किए गए हैं: क्यूबिक-बेजियर (0.25, 0.1, 0.25, 1.0) (एक्स 1, वाई 1, एक्स 2, वाई 2, यह मान क्रमशः 0 या 1 से छोटे या बड़े नहीं होने चाहिए)
अब किसी दिए गए एक्स के लिए वाई समन्वय प्राप्त करने के लिए मुझे क्या करना होगा, मान लीजिए कि केवल एक ही है? (मुझे पता है कि कुछ परिस्थितियों में कई मूल्य हो सकते हैं, लेकिन चलो बस उन्हें एक तरफ रख दें। मैं यहां रॉकेट विज्ञान नहीं कर रहा हूं, मैं बस प्रति सेकंड वाई कई बार संक्रमण करने में सक्षम होना चाहता हूं)घन बेजियर वक्र - दिए गए एक्स

मैं इसे खोदने में कामयाब रहा: y coordinate for a given x cubic bezier, लेकिन मुझे समझ में नहीं आता कि xTarget क्या है।
ओह, यह भी कोई होमवर्क नहीं है, मैं इस तथ्य पर थोड़ा नाराज हूं कि इंटरनेट पर क्यूबिक बेजियर वक्र के बारे में कोई समझदार सामान नहीं है।

+0

प्रश्न भी यहां दिखाई देती है: http://stackoverflow.com/questions/7348009/y-coordinate-for-a-given-x-cubic-bezier सुनिश्चित नहीं हैं जो पहले था, लेकिन यह अतिरिक्त जानकारी हो सकती है। – mredig

उत्तर

16

आप [0,1] में किसी भी t के लिए

P0 = (X0,Y0) 
P1 = (X1,Y1) 
P2 = (X2,Y2) 
P3 = (X3,Y3) 

तब है, तो आप एक x मूल्य दिया जाता है, तो आप निर्देशांक

X(t) = (1-t)^3 * X0 + 3*(1-t)^2 * t * X1 + 3*(1-t) * t^2 * X2 + t^3 * X3 
Y(t) = (1-t)^3 * Y0 + 3*(1-t)^2 * t * Y1 + 3*(1-t) * t^2 * Y2 + t^3 * Y3 

द्वारा दिए गए वक्र पर एक बात समझ है, तो आप की जरूरत है [0,1] में t मानों को वक्र पर उस बिंदु से मेल करें, फिर y समन्वय को खोजने के लिए उन t मानों का उपयोग करें।

X(t) समीकरण में ऊपर, अपने x मूल्य के लिए बाईं ओर की स्थापना की और X0, X1, X2, X3 में प्लग। यह आपको चरणीय t के साथ एक घन बहुपद के साथ छोड़ देता है। आप t के लिए इसे हल करते हैं, फिर समन्वय प्राप्त करने के लिए Y(t) समीकरण में t मान को प्लग करें।

cubic polynomial को हल करना मुश्किल है लेकिन एक घन बहुपद को हल करने के तरीकों का सावधानीपूर्वक उपयोग करके किया जा सकता है।

+0

कुछ दोस्तों से थोड़ी मदद के साथ, मैं इसे समझने में सक्षम था। मैं जो कुछ आवश्यक था उसे पूरा करने के लिए मैंने एक और मंच में दो कार्यों को दोबारा लिखा: http://cl.ly/C1Nl (सी #, सुंदर भी नहीं हो सकता है) आपकी मदद के लिए धन्यवाद! :) –

+0

इस सूत्र में यह क्या है ?? –

+0

@JansiKiRani टी जो भी आप चाहते हैं, जब तक यह 0 और 1. –

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