Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2005.03.27;
Скачать: CL | DM;

Вниз

Рисуемс   Найти похожие ветки 

 
Delta ©   (2005-03-10 21:51) [0]

Приветствую!
Есть ли у кого нибудь алгоритмы вычерчивания на канве
1) эллипса
2) скругленного прямоугольника
мне нужно обойтись без стандартых методов Canvas, тоетсь рисовать вышеперечисленное не Ellipse и не  RoundRect


 
XP   (2005-03-10 22:11) [1]

1. Эллипс:
X := R1 * sin(A);
Y := R2 * cos(A);
где R1, R2 - радиусы эллипса, А - угол (0 < A < 2Pi)
Меняя А, получаем совокупность точек, принадлежащих эллипсу. Использование MoveTo(), LineTo(), LineTo()... даст требуемый результат. Чем меньше шаг по А, тем больше получаемая ломаная похожа на окружность. Я думаю, при шаге в 0,01Pi получится весьма сносный вид.
Частный случай: R1=R2 - окружность.

2. Прямоугольник с закругленными углами как совокупность четырех сторон плюс четыре "четверти" окружностей: (0 < A < Pi/2), (Pi/2 < A < Pi), (Pi < A < 3Pi/4), (3Pi/4 < A < 2Pi)

Это так, наспех...


 
Григорьев Антон ©   (2005-03-10 22:23) [2]

Для построения эллипсов можно использовать алгоритм Брезенхэма - яндекс поможет найти его описание. А вообще, NT все окружности апроксимирует кривыми Безье 3-его порядка. Советую почитать Феня Юаня, там это всё хорошо описано.



Страницы: 1 вся ветка

Текущий архив: 2005.03.27;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.026 c
14-1110430117
begin...end
2005-03-10 07:48
2005.03.27
С Днём рождения! 10 марта


1-1111043672
Gek1
2005-03-17 10:14
2005.03.27
ComboBox


1-1110486137
Наччинающий
2005-03-10 23:22
2005.03.27
Отслежывание нажатие клавиш когда програма в фоновом режыме


4-1108126667
Sergey_Evdokimov
2005-02-11 15:57
2005.03.27
Есть TGroupBox в чужом exe, Как пройтись по всем его компонентам?


4-1108466729
AbramovVi
2005-02-15 14:25
2005.03.27
извлеч финкции из dll