Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Программирование и базы данных (http://forum.oszone.net/forumdisplay.php?f=21)
-   -   Выпуклая оболочка (http://forum.oszone.net/showthread.php?t=30106)

mirkut 08-12-2003 12:42 207288

подскажите как можно посчитать периметр выпуклой  оболочки, расположенной в первой четверти
ПС очень надо
все написать необходимо на Ruby, С++ или Java
а выпуклая оболочка должна строиться  постепенно- т.е. задавать надо постепенно точки
выпуклая оболочка-это многоугольнык, заданный массивом его вершин
известна функция, которая пересчитывает этот массив при вновь прибывшей точке


[s]Исправлено: mirkut, 16:15 9-12-2003[/s]


[s]Исправлено: mirkut, 16:20 9-12-2003[/s]

pva 08-12-2003 13:39 207289

Вообще-то нужно уточнить, что ты понимаешь под выпуклой оболочкой.
Если это-кривая, заданная параметрически {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;


Время: 11:07.

Время: 11:07.
© OSzone.net 2001-