|
|
ru.algorithms- RU.ALGORITHMS ---------------------------------------------------------------- From : Andrew Vlasov 2:5020/400 22 Jan 2003 17:19:23 To : Sergey Andrianov Subject : Re: Безье -------------------------------------------------------------------------------- Это просто, вот мой код: //========= template<class X,class K> inline void PolynomialFitPK(X xf,X xl,K kf,K kl) { _PolynomialFitPK(xf,xl,kf,kl,std::_Val_type(xf)); } template<class X,class K,class T> inline void _PolynomialFitPK(X xf,X xl,K kf,K kl,T *) { //f(t)=sum(k[i]*t^i,i=0,i<=n;i++),t=(0,1) //x[i]=f(i/N);i=0,N int iXCount=std::distance(xf,xl); int iYCount=std::distance(kf,kl); ASSERT(iXCount==iYCount); X x=xf; K k=kf; switch(iXCount) { case 3: k[0]= x[0]; k[1]= x[0]*(-3) + x[1]*4 + x[2]*(-1); k[2]= x[0]*2 + x[1]*(-4) + x[2]*2; break; default: ASSERT(FALSE); break; } } //использвание: main() { Point x[3]={Point(x1,y1),Point(x2,y2), Point(x3,y3)}; //твои три точки, с координатами (x1,y1), (x2,y2), (x3,y3) Point k[3]; //коэффициенты полинома3 PolynomialFitPK(x,x+3,k,k+3); } "Sergey Andrianov" <Sergey.Andrianov@p400.f1507.n5020.z2.fidonet.org> wrote in message news:1043015137@p400.f1507.n5020.z2.ftn... > Здравствуй, Mike! > > Однажды 17-Jan-03 в 13:23 Mike 'l0ck' Kolesoff (2:5015/10.9) > написал All по поводу > -=- Безье -=- > > M'K> Имеется три точки, с координатами (x1,y1), (x2,y2), (x3,y3) > M'K> соответственно. > M'K> Хочется нарисовать кривую, от точки 1 до точки 3, чтобы она проходила > M'K> через > M'K> точку 2. Kрасивую кривую. Kак?? > > Kак известно, через 3 точки можно провести окружность. Kрасивее кривой не > бывает. А сабж имеет гораздо больше степеней свободы и вряд ли сможет > сравниться с окружностью по красоте. > > До свидания, в 22:24 MSK > Sergey > --- ifmail v.2.15dev5 * Origin: Comcor (2:5020/400) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.algorithms/78087f259937.html, оценка из 5, голосов 10
|