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


ru.algorithms

 
 - RU.ALGORITHMS ----------------------------------------------------------------
 From : Alex Astafiev                        2:5000/228.16  09 Feb 2002  15:58:19
 To : Sergei Shelukhin
 Subject : таки вpащение
 -------------------------------------------------------------------------------- 
 
  SV>> Hо поскольку за микросекунду выполняется 200-1000 тактов, то IMHO
  SV>> не стоит экономить на синусах.
  SS> Пpоблема в том, что если для 1 слyчая считается 2 синyса и 2 косинyса,
  SS> а слyчаев в системе около 50(+-30), а систем 100-150, и надо посчитать
  SS> все это быстpо ;)
  First demomaking rule - avoid computations whenever it possible.
 ==== Begin of raidermtx.txt ====
 ------12 умножений на поворорт-------
 x
 x'  = x*cos(A) + y*sin(A)
 y'  = x*sin(A) - y*cos(A)
 
 y
 
 x'' = x'*cos(B) + z*sin(B)
 z'  = x'*sin(B) - z*cos(B)
 
 z
 
 y'' = y'*cos(C) + z'*sin(C)
 z'' = y'*sin(C) - z'*cos(C)
 
 - ---9 умножений на поворот---------
 
 x'' = x * [cos(A)cos(B)] +
       + y * [sin(A)cos(B)] +
    + z * [sin(B)]
 
 y'' = x * [sin(A)cos(C) + cos(A)sin(B)sin(C)] +
    + y * [-cos(A)cos(C) + sin(A)sin(B)sin(C)] +
    + z * [-cos(B)sin(C)]
 
 z'' = x * [sin(A)sin(C) - cos(A)sin(B)cos(C)] +
    + y * [-cos(A)sin(C) - sin(A)sin(B)cos(C)] +
    + z * [cos(B)cos(C)]
 
 xx = [cos(A)cos(B)]
 xy = [sin(A)cos(B)]
 xz = [sin(B)]
 
 yx = [sin(A)cos(C) + cos(A)sin(B)sin(C)]
 yy = [-cos(A)cos(C) + sin(A)sin(B)sin(C)]
 yz = [-cos(B)sin(C)]
 
 zx = [sin(A)sin(C) - cos(A)sin(B)cos(C)]
 zy = [-cos(A)sin(C) - sin(A)sin(B)cos(C)]
 zz = [cos(B)cos(C)]
 
 x'' = x * xx + y * xy + z * xz
 y'' = x * yx + y * yy + z * yz
 z'' = x * zx + y * zy + z * zz
 
 ----6 умножений на поворот-------
 
 (a+y)(b+x) = ab + ax + by + xy =
 ax + by = (a+y)(b+x) - (ab + xy),
 ax + by + cz = (a+y)(b+x) + cz - (ab + xy)
 
 =>
 
 x' = (xx + y)(xy + x) + z*zx - (xx*xy + x*y)
 y' = (yx + y)(yy + x) + z*yx - (yx*yy + x*y)
 z' = (zx + y)(zy + x) + z*zx - (zx*zy + x*y)
 
 но x*y = constant для обьекта.
 
 xx_xy = xx*xy
 yx_yy = yx*yy
 zx_zy = zx*zy
 
 =>
 
  x' = (xx + y)(xy + x) + z*xz - (xx_xy + x_y)
  y' = (yx + y)(yy + x) + z*yz - (yx_yy + x_y)
  z' = (zx + y)(zy + x) + z*zz - (zx_zy + x_y)
 ------------------------------------
 ==== End of raidermtx.txt ====
 
 --- Alex Raider / Flash inc.
  * Origin: Alex Raider/ Flash inc. 1992-2002 (2:5000/228.16)
 
 

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

 Тема:    Автор:    Дата:  
 таки вpащение   Sergei Shelukhin   04 Feb 2002 21:25:52 
 таки вpащение   Ivan Mak   06 Feb 2002 00:24:46 
 Re: таки вpащение   Andrew Doroshev   05 Feb 2002 12:17:28 
 Re: таки вpащение   Sergey Voloshchuk   05 Feb 2002 17:46:31 
 таки вpащение   Sergei Shelukhin   05 Feb 2002 23:42:59 
 таки вpащение   Andrew Simontsev   06 Feb 2002 14:12:27 
 таки вpащение   Alex Astafiev   09 Feb 2002 15:58:19 
 Re: таки вpащение   Vitaliy Bochcarev   05 Feb 2002 17:21:11 
 Re: таки вpащение   Valentin Davydov   07 Feb 2002 19:36:08 
Архивное /ru.algorithms/174643c653995.html, оценка 1 из 5, голосов 10
Яндекс.Метрика
Valid HTML 4.01 Transitional