का उपयोग करके 2 डी बी-स्पलाइन पथ खींचने के लिए जीएनयू वैज्ञानिक पुस्तकालय (जीएसएल) का उपयोग करके मैं ए से बी तक एक आसान पथ खींचने के लिए जीएनयू वैज्ञानिक पुस्तकालय (जीएसएल) का उपयोग करने की कोशिश कर रहा हूं। एपीआई कि (लाल रंग में) अनियमित अंतराल के अंक के (इस मामले में 8) एक छोटी संख्या देता है, तो आपको निम्न चित्र में देख सकते हैं कि:असमान रूप से दूरी वाले अंक
बैंगनी अंक अंक करता हूं कि मेरे लिए करना चाहते हैं जीएसएल से वापस देखें।
सबसे पहले, इस तरह का 2 डी बी-स्पलाइन आकार जीएसएल का उपयोग करके उपलब्ध है? मुझे बी-स्प्लिंस के बारे में बहुत कुछ पता नहीं है, अकेले 2 डी बी-स्प्लिंस दें। मैं बी splines उदाहरण दिखाया गया here चल रहा है और समस्या के बिना एक चिकनी .ps फ़ाइल बनाने प्राप्त करने में सक्षम था, लेकिन है कि उदाहरण के लिए निम्न कोड के साथ एक समान breakpoints उपयोग करता है:
/* use uniform breakpoints on [0, 15] */
gsl_bspline_knots_uniform(0.0, 15.0, bw);
मेरे मामले में, उस डेटा मैं दिया 'दिया गया है अनियमित है और समान रूप से दूरी नहीं है, क्या मुझे गैर-वर्दी नॉट्स का उपयोग करना होगा? मैंने निम्नलिखित परीक्षण कोड में गैर वर्दी ब्रेकपॉइंट्स का उपयोग करने के लिए gsl_bspline_knots()
का उपयोग करने का प्रयास किया, लेकिन मुझे सच में यकीन नहीं है कि यह सही दिशा है या नहीं।
#define NCOEFFS 8 // not sure what this number should be - number of data points?
#define NBREAK (NCOEFFS - 2)
const size_t nbreak = NBREAK;
int main (void) {
// (example code)...
gsl_vector *non_uniform = gsl_vector_alloc(nbreak);
// create some random breakpoint values
for (i=0; i<nbreak; i++) {
double val = gsl_ran_gaussian(r, 2.0);
printf("val: %f\n", val);
gsl_vector_set(non_uniform, i, val);
}
gsl_bspline_knots(non_uniform, bw);
// (more example code)...
}
और भी, मैं 2 डी x/y समन्वय स्थान में बी-स्प्लिंस ड्राइंग के लिए उपर्युक्त उदाहरण का अनुवाद कैसे करूं? यदि जीएनयू वैज्ञानिक पुस्तकालय इसके लिए उपयुक्त नहीं है, तो क्या कोई अधिक उपयुक्त सी/सी ++ लाइब्रेरी के लिए सिफारिश कर सकता है?
दिशा में किसी भी मदद या पॉइंटर्स की बहुत सराहना की जाएगी।
गहराई से जवाब Vinicius के लिए बहुत बहुत धन्यवाद। यह शायद मुझे पचाने के लिए एक या दो दिन ले जा रहा है और वास्तव में इसे समझता है। यह मुझे स्पष्ट है कि मुझे splines के मूलभूत सिद्धांतों के संबंध में और अधिक सीखने की जरूरत है। –
यदि आप जीएसएल दस्तावेज में सावधानी से उदाहरण पढ़ते हैं, तो आप देखेंगे कि 1 डी गैर-पैरामीट्रिक बी-स्पलीन फिट का व्यावहारिक कार्यान्वयन बहुत जटिल नहीं है। F_1 (टी) और f_2 (टी) फिट करने के लिए इसका पालन करें। –