|
|
ru.algorithms- RU.ALGORITHMS ---------------------------------------------------------------- From : Kluchnikov Eugene 2:5003/39.64 19 Dec 2001 19:44:38 To : Aleksey Malov Subject : Фоpмyла окpyжности --------------------------------------------------------------------------------
Во Вторник 18 Декабря 2001-го года где-то в 18:11,
Вы отписали в сторону Alex Astafiev Hа тему: Фоpмyла окpyжности
AM> Кстати, а существует ли алгоритм построения эллипсов (т.е. когда
AM> даны горизонтальный и вертикальный радиусы), подобный алгоритму
AM> Брезенхема?
x^2/a^2+y^2/b^2=1 -> b^2*x^2+a^2*y^2=a^2*b^2
0) вычислим a*a, b*b.
1) x:=0 y:=b dx:=(b*b) nx:=(b*b) dy:=(a*a)*(2*b-1) ny:=dy
2) Пока dx<=dy
x=x+1 ny:=ny-nx dx:=dx+2*(b*b) nx:=nx+dx
Если ny<0 то dy:=dy-2*(a*a) ny:=ny+dy y:=y-1
3) y:=0 x:=a dy:=(a*a) ny:=(a*a) dx:=(b*b)*(2*a-1) nx:=dx
4) Пока dy<=dx
y=y+1 nx:=nx-ny dy:=dy+2*(a*a) ny:=ny+dy
Если nx<0 то dxx=dx-2*(b*b) nx:=nx+dx x:=x-1
Получили четверть эллипса. Для каждой (x,y) ставим еще (-x,-y) (-x,y) (-y,x)
_WBR_, _/*Eustas*/_.
--- Shadow of Warrior
* Origin: My life for Aiur (2:5003/39.64)
Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.algorithms/33763c20b61b.html, оценка из 5, голосов 10
|