Ветеран
Сообщения: 1180
Благодарности: 279
|
Профиль
|
Отправить PM
| Цитировать
Вообще-то нужно уточнить, что ты понимаешь под выпуклой оболочкой.
Если это-кривая, заданная параметрически {f(n), g(n)}, то её длина -
Integral(sqrt(df(n)^2+fg(n)^2)), или численно (на С):
const double dn=1;
double length1=0;
for(n=0;n<N;n++) {
register double df=f[n]-f[n-1];
register double dg=g[n]-g[n-1];
length1+=sqrt(df*df+dg*dg)*dn;
}
cout<<"length1="<<length1<<endl;
или, если как функция, то Integral(sqrt(1+df(n)^2)), или
const double dn=1;
double length1=0;
for(n=0;n<N;n++) {
register double df=f[n]-f[n-1];
length1+=sqrt(df*df+1)*dn;
}
cout<<"length1="<<length1<<endl;
|
Отправлено: 13:39, 08-12-2003
| #2
|