Форум: "Потрепаться";
Текущий архив: 2004.10.31;
Скачать: [xml.tar.bz2];
ВнизМетод Брезенхема. Прямой доступ к видео памяти. Найти похожие ветки
← →
Stef (2004-10-09 08:34) [0]Здравствуйте. Есть такой метод Брезщенхема восьмисвязный для рисования прямой. Этот метод по теории должен работать быстрее стандартных функций рисования прямой в несколько раз. Вот как дан он:
Procedure line_8(x1,y1,x2,y2: integer; Canva: TCanvas; Color: TColor);
Var x,y,s1,s2,dx,dy,e,z, i: Integer;
change: boolean;
Begin
x:=x1;
y:=y1;
dx:=abs(x2-x1);
dy:=abs(y2-y1);
s1:=sign(x2-x1);
s2:=sign(y2-y1);
If dy>dx then
Begin
z:=dx;
dx:=dy;
dy:=z;
change:=true
end
else change:=false;
e:= 2*dy-dx;
for i:=1 to dx do
begin
Canva.Pixels[x, y]:=Color;
while e>=0 do
begin
If change then x:=x+s1 else y:=y+s2;
e:=e-2*dx;
end;
If change then y:=y+s2 else x:=x+s1;
e:=e+2*dy
end;
Canva.Pixels[x, y]:=Color;
end;
но этот метод не то что быстрее он еще и тормознее в несколько раз. Слышал что можно осуществить прямой доступ к видео памяти и в результате чего Canva.Pixels[x, y]:=Color работает быстрее и метод сам может работать быстрее.
Вообщем подскажите как можно оптимизировать этот метод что бы он работал быстрее стандарт. функций?
← →
Alx2 © (2004-10-09 09:19) [1]DirectX - прямой доступ.
По остальному, надеюсь, поможет линк
http://www.delphimaster.ru/articles/pixels/index.html
← →
VMcL © (2004-10-09 09:33) [2]>>Stef (09.10.04 08:34)
По твоему GDI, DirectX, OpenGL etc. дураки писАли?
← →
Stef (2004-10-09 10:05) [3]2 Alx2 © (09.10.04 09:19) [1]
пасибо. статья действительно помогла.
← →
Zacho © (2004-10-09 11:05) [4]Имхо, на современных компах гораздо более простой ЦДА будет работать быстрее алгоритма Брезенхема. Вот на Спектруме, да Брезенхем был быстрее.
P.S. Это действительно imho, могу и ошибаться, не проверял.
← →
хм © (2004-10-09 13:03) [5]ты думаешь, в gdi line реализована не по этому методу? Ех, жалко у меня ща softice нет...
← →
Григорьев Антон © (2004-10-10 09:22) [6]
> хм © (09.10.04 13:03) [5]
> ты думаешь, в gdi line реализована не по этому методу? Ех,
> жалко у меня ща softice нет...
Да большинство видеоадаптеров сейчас вообще имеет аппаратное ускорение рисования прямых, а GDI умеет этим пользоваться, а уж аппаратное ускорение никакой программный алгоритм не обгонит. Впрочем, программное рисование примитивов GDI тоже реализует - например, для DC в памяти, которые никакого аппаратного ускорения не имеют.
Страницы: 1 вся ветка
Форум: "Потрепаться";
Текущий архив: 2004.10.31;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.039 c