d-amir בית תוכנה אינטרנטית לעסקים קטנים ובינוניים ובעיקר עסקים אישיים

נוסחה להעברת קו בין נקודות

לעיתים, ובמיוחד בתוכנות עם אלמנט גרפי, אנו נדרשים להעביר קו בין נקודות.

בד"כ חיבור בקו ישר מספיק, אבל ייתכן כי נידרש לחבר בקו "חלק" ועגול יותר.

כדי לעשות זאת, השיטה הטובה ביותר היא להשתמש בשיטת האינטרפולציה cubic spline

ניתן לקרוא עוד על השיטה בויקיפדיה: http://en.wikipedia.org/wiki/Spline_interpolation

 

אבל אחסוך לכם :)

לשם החישוב, נדרשות 4 נקודות מסביב למיקום שלנו על ציר X (2 אחורה ושתיים קדימה)

כלומר אם אנחנו רוצים לחשב ערך בין הנקודה X1 ו-X2 אז אנחנו מוסיפים גם את X0 ואת X3

המיקום יוגדר כיחס: (x-x1)/(x2-x1)

כיוון שאנו תמיד מחשבים עבור נקודה שבין X1 לבין X2 הרי שהיחס הזה (שנקרא MU ) יהיה תמיד קטן מ-1

 

אופן חישוב ערך Y בנקודה X יהיה:

mu= (x-x1)/(x2-x1)
mu2 = mu*mu;
a0 = -0.5*y0 + 1.5*y1 - 1.5*y2 + 0.5*y3;
a1 = y0 - 2.5*y1 + 2*y2 - 0.5*y3;
a2 = -0.5*y0 + 0.5*y2;
a3 = y1;

y=a0*mu*mu2+a1*mu2+a2*mu+a3

 

 

ומה עושים בקצוות, כאשר אין לנו את הנקודה הנוספת?

אני פשוט המצאתי עוד נקודה, עם הערך של ה-Y האחרון ועם X קצת יותר גדול

 

ניסיתי, וזה יוצא ממש יפה

 

בהצלחה !