przerwania biosu w pascalu

0

witam [green]

musze napisac procedure ktore narysuje w pascalu kolo i linie wykorzystujac do tego tylko przerwania BIOSU (nie chodzi mi o assemlera):
1)na jaki tryb mam ustawic SET VIDEO MODE ?
2)podajcie mi nr przerwania ktore narysuje mi kolo i linie w pascalu

mam:
r.ah:=$0;
r.al:=$13;
intr($10,r);
co dalej?

ps. nie moge wykorzystywac zadnych funkcji graficznych/tekstowych jezyka pascal

http://www.ctyme.com/intr/int.htm pomocny link

0

przerwanie to raczej ci koła nie narysuje. a co najwyżej punkt. do tego żeby koło narysować czy też linie musisz posłużyć się odpowiednimi algorytmami

0

hmmm,a znasz moze takie algorytmy ? a jesli np. chodzi mi o rysowanie kolka,to chyba przerwanie nr 10
AH=4Dh; hercules grafix ma taka opcje,ale nie wiem czemu nie dziala...no problem mam,wrecz zagadke z tym projektem ;-(

0

paskalowy sposób narysowania pixela to :)
mem[$A000:x+y*rozdzialka]:=kolor
gdzie rozdzialka to szerokosc ekranu w pixelach

jesli biega o narysowanie lini to musisz poszukać wzoru na prostą przechodzącą przez dwa punkty
Tablice matematyczne str 80
punkty to A(xa,ya) ; B(xb,yb);
a wzór to y-ya=((yb-ya)/(xb-xa))*(x-xa)

punkt A < B tzn yb>ya

aby narysować linie prostą pionową lub poziomą nie trzeba dużo myśleć ;) a co do koła to ;)
str 89 ;)
(x-a)2 +(y-b)2 = r^2

srodek to p(a,b) proomien r
to tylko wzory z wykozystaniem troche gorzej moze być ale spróbuj jak się nie uda to zapraszam poniwnie pozdr M_lama

0

Powowdzenia z implementacją równań drugiego stopnia do rysowania kółka.

masz środek okręgu S(x0,y0)

punkt do narysowania to:

x=trunc(r*cos(a))+x0;
y=trunc(r*sin(a))+y0;

a jest kątem 0-360 stopni. Punkty wyliczasz w pętli, za każdym razem zwiększając kąt. Im skok kąta jest mniejszym tym ładniejsze masz koło.

0

dzienx LOLOKI za rozwiazanie klopotu i Tobie ML [green] jak ukoncze projekt to go dodam na stronke ;-P

1 użytkowników online, w tym zalogowanych: 0, gości: 1