![]() |
1. Заголовок или название темы должно быть информативным !
2. Все тексты фрагментов программ должны помещаться в теги [code] ... [/code] или [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ" и используйте ПОИСК !
4. НЕ используйте форум для личного общения!
5. Самое главное - это раздел теоретический, т.е. никаких задач и программ (за исключением небольших фрагментов) - для этого есть отдельный раздел!
![]() |
GoodWind |
![]() ![]()
Сообщение
#1
|
![]() Автооответчик ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 1 188 Пол: Мужской Реальное имя: Александр Репутация: ![]() ![]() ![]() |
Господа, кто нибудь может доходчиво обьяснить сабж ?
-------------------- Неадекватная чушь может быть адекватным ответом на неадекватный вопрос. Понятно или разжевать?
|
![]() ![]() |
P@sh@ |
![]()
Сообщение
#2
|
![]() Бывалый ![]() ![]() ![]() Группа: Пользователи Сообщений: 180 Пол: Мужской Репутация: ![]() ![]() ![]() |
Есть у меня какой-то алгоритм Брезенхема для эллипса... сам не смотрел даже, и не помню, где достал (может здесь?
![]() а для рисования линий много раз им пользовался (или похожим), нашел тут одну из самых первых собственных реализаций: Код procedure line(x1,y1,x2,y2:integer; c:byte); var dx,dy,dn,x,y:integer; function sgn(n:integer):shortint; begin if n<0 then sgn:=-1 else if n>0 then sgn:=1 else sgn:=0; end; function inr(a,b,c:integer):boolean; begin inr:=(a>=b)and(a<=c); end; begin dx:=x2-x1; dy:=y2-y1; x:=x1; y:=y1; if abs(dx)>=abs(dy) then begin dn:=abs(dx) div 2; while (x<>x2) do begin pset(x,y,c); x:=x+sgn(dx); dn:=dn-abs(dy); if dn<=0 then begin dn:=dn+abs(dx); y:=y+sgn(dy); end; end; end else begin dn:=abs(dy) div 2; while y<>y2 do begin pset(x,y,c); y:=y+sgn(dy); dn:=dn-abs(dx); if dn<=0 then begin dn:=dn+abs(dy); x:=x+sgn(dx); end; end; end; pset(x,y,c); end; Прикрепленные файлы ![]() |
![]() ![]() |
![]() |
Текстовая версия | 26.07.2025 12:01 |