2014 dxdy logo

Научный форум dxdy

Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки




Начать новую тему Ответить на тему
 
 Алгоритмы Брезенхема для гиперболы и параболы
Сообщение02.04.2008, 20:32 


22/12/07
53
Гипербола и парабола представлены в канонических видах.
Буду очень благодарна за литературу.
И не менее благодарна за подсказки.

 Профиль  
                  
 
 
Сообщение21.05.2008, 23:34 


22/12/07
53
Подскажите пожалуйста - с какой точки следует начинать построение гиперболы.
Я брала точку (a,0) и алгоритм строила по принципу алгоритма для эллипса, т.е. разбивала дугу на две части относительно величины угла между вектором нормали в точке и осью OX.
Вообще сомневаюсь, что нормаль при построении гиперболы дает нужный эффект.

 Профиль  
                  
 
 Спасибо, что меня читаете.
Сообщение24.05.2008, 23:25 


22/12/07
53
Для гиперболы алгоритм придумала, в будущем планирую издать книгу , в которой его и опубликую.
Теперь дело за параболой.
Вот думаю в каком виде взять уравнение: каноническое y^2=2px или квадратное y=ax^2+bx+c.
Склоняюсь к каноническому, потому что вершина в (0,0).
Наверное, все аналогично. Но если возникнут трудности приду порассуждать сюда.

Добавлено спустя 45 минут 44 секунды:

Парабола

Собственно пришла..
Начальная точка в вершине координат. Из каждого пикселя могу двигаться либо вверх, либо вправо, либо по диагонали (вверх-вправо). Т.е. нач точка - (x,y). Следущими могут быть (x,y+1), (x+1,y), (x+1,y+1).
Каноническое уравнение y^2-2px=0
Нахожу отклонения:
горизонтальное отклонение: S_{h}=y^2-2p(x+1)
вертикальное отклонение: S_v=(y+1)^2-2px
диагональное отклонение: S_d=(y+1)^2-2p(x+1)

Начальное отклонение при подстановке (0,0) получается S_{d}=(0+1)^2-2p(0+1)=1-2p
Если S_{d}<=0, то следующий пиксель либо диагональный, либо правый. В противном случае - либо верхний, либо диагональный.
В первом случае проверяем отклонение \Delta=|S_d|-|S_h|. Если \Delta<=0, то пиксель диагональный, если \Delta>0, то пиксель правый.
Во втором случае если \Delta=|S_v|-|S_d|<=0, то пиксель верхний, в противном случае - верхний.
Ну и считаю отклонения S_d для всех случаев.
S_{d}=S_d-2p для (x+1,y)
S_{d}=S_d-2p+2y+1 для (x+1,y+1)
S_{d}=S_d+2y+1 для (x,y+1)

И все-таки рисует не так. Наверное, в чем-то ошибка. Хотя не исключено, что все в корне не верно.

 Профиль  
                  
 
 
Сообщение25.05.2008, 02:48 


22/12/07
53
Нашла ошибку. Случаи в зависимости от S_d надо поменять местами.

 Профиль  
                  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 4 ] 

Модераторы: Karan, Toucan, PAV, maxal, Супермодераторы



Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group