Cubic spline function
11 отговора
362 прегледа
Cubic spline function
Търся си реализирана функция, която да ми изчертае плавна крива линия между набор от точки. Стандартния PolyBezier не ме устройва, щото чертае серия криви, а не една обща крива.
Моля ако някой има нещо готово подръка, да свирне. Ще бъда много благодарен.
P.S. Алгоритми и материали не ме вълнуват, щото съм стар и мързелив да пиша такива неща.
чети и дишай по-леко
Моля ако някой има нещо готово подръка, да свирне. Ще бъда много благодарен.
P.S. Алгоритми и материали не ме вълнуват, щото съм стар и мързелив да пиша такива неща.
чети и дишай по-леко
Re: Cubic spline function
Imam algoritmi i materiali - i ako ne bqh star, marzeliw i pretrupan s rabota shtqh da ti napisha ama weche e mnogo kasno...
------------------------------
I got a COMPILER, and I'm not afraid to use it!
------------------------------
I got a COMPILER, and I'm not afraid to use it!
Re: Cubic spline function
kakvo po-tochno ti trqbva ? da chertae kriva koqto se samopresicha - F(x,y) ili funkciq samo na edna promenliva - F(x)
Re: Cubic spline function
Нещо не схванах за самопресичането... Идеята е следната - имаш поредица от точки, които трябва да се свържат с плавна крива линия. Ако си чертал ръчно графики по физика например ще ти е ясно за какво става дума.
В Windows има реализирана функция - PolyBezier (array of TPoint). Проблема е, че тя не свързва плавно всички линии, а ги свързва по 4 - т.е. с една крива свързва 1,2,3,4 точка, с друга - 4,5,6, с трета - 6,7,8 и т.н. Резултата е гадно начупена линия.
За да онагледя какво искам, пусни например Word и изчертай една крива с много точки. Това го гоня аз. После пусни Paint и се опитай да направиш една крива линия от 10-на точки. Ще получиш това което прави PolyBezier.
чети и дишай по-леко
В Windows има реализирана функция - PolyBezier (array of TPoint). Проблема е, че тя не свързва плавно всички линии, а ги свързва по 4 - т.е. с една крива свързва 1,2,3,4 точка, с друга - 4,5,6, с трета - 6,7,8 и т.н. Резултата е гадно начупена линия.
За да онагледя какво искам, пусни например Word и изчертай една крива с много точки. Това го гоня аз. После пусни Paint и се опитай да направиш една крива линия от 10-на точки. Ще получиш това което прави PolyBezier.
чети и дишай по-леко
Виж ...
тук или по точно тук
Не знам дали ще ти свърши работа - ама поне има нещо.
---
Е т'ва е живот!
Не знам дали ще ти свърши работа - ама поне има нещо.
---
Е т'ва е живот!
Редактирано от PhantomAS на
Re: Виж ...
Това още сутринта го видях... Но се ползва пак Безие и пак с криви свързващи 4 точки... Не става...
чети и дишай по-леко
чети и дишай по-леко
Re: Виж ...
function PolyBezier(DC: HDC; const Points; Count: DWORD): BOOL; stdcall;
function PolyBezierTo(DC: HDC; const Points; Count: DWORD): BOOL; stdcall;
function PolyDraw(DC: HDC; const Points, Types; cCount: Integer): BOOL; stdcall;
Не мога да разбера защо си решил, че функцията PolyBezier използва само 4 то4ки ???? Sorry, че в момента нямам време да се занимавам - но погледни примерите по внимателно - от това което виждам в Google - май не е то4но така както мислиш
---
Е т'ва е живот!
function PolyBezierTo(DC: HDC; const Points; Count: DWORD): BOOL; stdcall;
function PolyDraw(DC: HDC; const Points, Types; cCount: Integer): BOOL; stdcall;
Не мога да разбера защо си решил, че функцията PolyBezier използва само 4 то4ки ???? Sorry, че в момента нямам време да се занимавам - но погледни примерите по внимателно - от това което виждам в Google - май не е то4но така както мислиш
---
Е т'ва е живот!
Re: Cubic spline function
Май несъм наясно какво искаш, ама ако е за Trend Line /като е в Excel/ - погледни това, може да ти свърши работа
--------------------------------------
Започва Път от моят праг...
--------------------------------------
Започва Път от моят праг...
Крива на Безие и сплайнова интерполация
За построяване на крива на Безие са необходими 4 точки.Кривата започва от т.1 и е допирателна към вектора, определен от точки 1-2. Краят на кривата е в т.4, като е допирателна към вектор 4-3. Тези криви се използват в автомобилостроене. Сплайновата интерполация е идеална за целта. Имам я разработена, но сорса не ми се дава, защото ми струваше месеци работа. Посочи адрес, да ти изпратя .ЕХЕ. Може и да ти свърши работа.
Re: Крива на Безие и сплайнова интерполация
Zarezhi, ako edni splaini implementirash meseci... :)
Re: Крива на Безие и сплайнова интерполация
Радвам се, че си се занимавал толкова усърдно. За съжаление на мен ми трябва сорс, за да го вградя в моята програма. За EXE ми стига и MSWord - чертае си перфектна крива между много точки. За единична крива между 4 точки мога да ползвам и PolyBezier
Вече ми дадоха примерен сорс, и някои ценни математически примера. Остава да си седна на задника, и мисля да свърша за ден-два. Все пак хората /имам предвид математиците/ са свършили къртовската работа, остава само да се напише тяхната идея. Все пак благодаря за предложението.
чети и дишай по-леко
Вече ми дадоха примерен сорс, и някои ценни математически примера. Остава да си седна на задника, и мисля да свърша за ден-два. Все пак хората /имам предвид математиците/ са свършили къртовската работа, остава само да се напише тяхната идея. Все пак благодаря за предложението.
чети и дишай по-леко