Главная страница


ru.algorithms

 
 - RU.ALGORITHMS ----------------------------------------------------------------
 From : Andrew Doroshev                      2:5020/400     12 Jan 2002  16:50:50
 To : Sergei Shelukhin
 Subject : Re: помогите эхотажномy чайникy...
 -------------------------------------------------------------------------------- 
 
 
 >  SP>   Я бы делал так. Расчитываем угол поворота, a = l/(pi*r*2)*2*pi, или
 >  SP> l/r. По углу составляем матрицу поворота. (cos a  -sin a) (sin a
 >  SP> cos a) домножаем на нее наш вектор, и все.
 > Очень неточный полyчается алгоpитм пpименительно к.
 > Hа небольших pадиyсах полyчается что-то очень yгловатое, на больших менее
 > заметно, но все же к пpимеpy пpи r=10000 отклонения от pадиyса где-то от -30
 > до 200, каждый полный обоpот pадиyс сокpащается на 3 (кстати, длина дyги
 > 3, стpанное совпадение). Пpи этом наличествоет абсолютно пpямой отpезок междy 
 > точками пpимеpно (-1700,10000) и (1700,10000).
 
 Dear Sergei!
 
 Глюки у Вас, страшные глюки. 
 Проверил в Maple7, для самого страшного случая r=100000, l=3,
 n=209440(число маленьких дуг на окружности),относительная погрешность
 после такого почти полного круга 
 при точночти 10 знаков delta=0.114857e-4, 
 при точночти 100 знаков delta=0.15057e-95. 
 Это всё для последовательного умножения координат очередной точки на
 матрицу поворота. 
 Если тебе нужна большая точность, можно каждый раз брать новую матрицу - 
 ((cos a,-sin a),(sin a,cos a)),
 ((cos 2a,-sin 2a),(sin 2a,cos 2a)),
 ... 
 правда здесь надо много вычислять синусов и косинусов, т.е. будет чуть
 медленнее, если нужно получать координаты всех точек последовательно, и
 намного быстрее, если нужны 1-я, 100-я и 2000-я точки.
 
 Проверь ещё раз свои вычисления:
 l  r  n    a  cos(a)   sin(a)
 3  10  20,94395102 0,3 0,955336489 0,295520207
 
 Умножаем так:
 x1=x*cos(a)-y*sin(a)
 y1=x*sin(a)+y*cos(a)
 
 П  X   Y
 0  10     0       
 1  9,553364891 2,955202067        
 2  8,253356149 5,646424734        
 3  6,216099683 7,833269096
 
 PS
 А где Вы говорите сдали выcшую математику?
 
 Andrew Doroshev
 --- ifmail v.2.15dev5
  * Origin: Demos online service (2:5020/400)
 
 

Вернуться к списку тем, сортированных по: возрастание даты  уменьшение даты  тема  автор 

 Тема:    Автор:    Дата:  
 помогите эхотажномy чайникy...   Sergei Shelukhin   09 Jan 2002 23:06:38 
 Re: помогите эхотажномy чайникy...   Sergey Politov   10 Jan 2002 06:37:59 
 помогите эхотажномy чайникy...   Sergei Shelukhin   11 Jan 2002 20:38:31 
 Re: помогите эхотажномy чайникy...   Andrew Doroshev   12 Jan 2002 16:50:50 
 Re: помогите эхотажномy чайникy...   Sergey Politov   12 Jan 2002 06:38:29 
 помогите эхотажномy чайникy...   Sergei Shelukhin   12 Jan 2002 20:48:39 
 Re: помогите эхотажномy чайникy...   Sergey Politov   13 Jan 2002 05:21:19 
 помогите эхотажномy чайникy...   Andrew   10 Jan 2002 21:57:08 
Архивное /ru.algorithms/79237e5677fb.html, оценка 1 из 5, голосов 10
Яндекс.Метрика
Valid HTML 4.01 Transitional