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


ru.algorithms

 
 - RU.ALGORITHMS ----------------------------------------------------------------
 From : Kluchnikov Eugene                    2:5003/39.64   21 Dec 2001  16:39:54
 To : Michael Ryazanov
 Subject : Формула окружности
 -------------------------------------------------------------------------------- 
 
 
  AM>>> Кстати, а существует ли алгоритм построения эллипсов (т.е. когда
  AM>>> даны горизонтальный и вертикальный радиусы), подобный алгоритму
  AM>>> Брезенхема?
  MR>    А как с произвольными осями (т.е. не параллельными осям координат)
  MR> рисовать?
 
  Тут сложнее. Пусть a*y=b*x - ось u=a*y-b*x
  v - перпендикулярна u => v=b*y+a*x
  Запишем уравнение эллипса в новых координатах u^2/c^2+v^2/d^2=1
  u^2*d^2+v^2*c^2=c^2*d^2
  Подставим x и y
  (a*y-b*x)^2*d^2+(b*y+a*x)^2*c^2=t0
  a^2*d^2*y^2-2*a*b*d^2*x*y+b^2*d^2*x^2+b^2*c^2*y^2+2*a*b*c^2*x*y+a^2*c^2*x^2=t
 
  Теперь зададим начальные x,y. Hапример при u=-d v=0.
  Для начала помним, что движемся в сторону возрастания u.(То есть a*dy-b*dx>=0) 
 Для каждой точки проверяем восемь вариантов перехода, и выбираем тот, что в
 сторону увеличения u, при этом |t-t0| минимален.
  Для каждого из восьми вариантов пути можно по формуле вывести dt(x,y). Если не 
 ошибаюсь, то можно хранить dt1,...dt8, и при каждом изменении координат их
 обновлять, а так как dx и dy <=1, то в зависимости от направления движения к ним
 прозводится прибавление констант и динамических добавок (которые на каждом ходу 
 изменяются на константу).
  Вот после этого надо идти в сторону уменьшения u, но с такой миникоррекцией
 начальных координат, что пройдем по другой ветке.
 
  PS: Если все учесть, то проще завести в памяти таблицу синусов, и рисовать по
 небольшим отрезкам.
 
 _WBR_, _/*Eustas*/_.
 --- Shadow of Warrior
  * Origin: My life for Aiur (2:5003/39.64)
 
 

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

 Тема:    Автор:    Дата:  
 Фоpмyла окpyжности   Vladimir Ilynkin   08 Dec 2001 23:03:29 
 Фоpмyла окpyжности   Boris Sivko   09 Dec 2001 02:19:28 
 Re: Фоpмyла окpyжности   Sergey Goltsov   09 Dec 2001 12:17:46 
 Фоpмyла окpyжности   Andrey Romanov   09 Dec 2001 10:10:34 
 Re: Фоpмyла окpyжности   Artyom Petrov   13 Dec 2001 02:11:40 
 Фоpмyла окpyжности   Kartohin Ruslan   10 Dec 2001 22:25:40 
 Фоpмyла окpyжности   Dima Kiryakov   10 Dec 2001 00:33:16 
 Re: Фоpмyла окpyжности   Sergey Goltsov   12 Dec 2001 11:58:50 
 Фоpмyла окpyжности   Kluchnikov Eugene   12 Dec 2001 12:26:28 
 Фоpмyла окpyжности   Alex Astafiev   17 Dec 2001 18:43:58 
 Фоpмyла окpyжности   Aleksey Malov   18 Dec 2001 19:11:25 
 Фоpмyла окpyжности   Kluchnikov Eugene   19 Dec 2001 19:44:38 
 Фоpмyла окpyжности   Aleksey Malov   20 Dec 2001 02:03:50 
 Фоpмyла окpyжности   Kluchnikov Eugene   20 Dec 2001 13:03:36 
 Re: Формула окружности   Michael Ryazanov   21 Dec 2001 00:32:00 
 Формула окружности   Kluchnikov Eugene   21 Dec 2001 16:39:54 
 Re: Фоpмyла окpyжности   Andrey Dashkovsky   19 Dec 2001 22:58:08 
 Фоpмyла окpyжности   Alexey Krasnov   12 Dec 2001 12:43:46 
 Фоpмyла окpyжности   Andrey Kalinin   13 Dec 2001 01:41:50 
 Фоpмyла окpyжности   Mityay   12 Dec 2001 01:02:16 
 Re: Фоpмyла окpyжности   Sergey Politov   12 Dec 2001 06:36:25 
 [+] Re: Фоpмyла окpyжности   Comoderator Of Ru Algorithms   11 Dec 2001 21:54:32 
Архивное /ru.algorithms/33763c233427.html, оценка 1 из 5, голосов 10
Яндекс.Метрика
Valid HTML 4.01 Transitional