Urz Zew Cw3, 1 STUDIA - Informatyka Politechnika Koszalińska, muniol, II rok, 3sem, Laborki systemy cyfrowe, sc ...
[ Pobierz całość w formacie PDF ] POLITECHNIKA KOSZALIŃSKA - WYDZIAŁ ELEKTRONIKI URZĄDZENIA ZEWNĘTRZNE Ćwiczenie laboratoryjne N 3 Ćwiczenie laboratoryjne N 3 TEMAT: OBSŁUGA KART GRAFICZNYCH Z WYKORZYSTANIEM PRZERWAŃ Celem ćwiczenia jest zapoznanie się z przerwaniami obsługującymi karty graficzne, oraz z podstawowymi algorytmami rysowania linii prostych i krzywych. Przygotowanie pracy laboratoryjnej wykonywane przed ćwiczeniem. 1. Zapoznaj się z przerwaniem BIOS'u o numerze 10h. W szczególności z jego funkcjami 00h i 0Ch, obsługującymi karty graficzne. 2. Zapoznaj się z dyrektywą MACRO i EQU. 3. Zastanów się w jaki sposób narysować odcinek pionowy lub poziomy z wykorzystaniem informacji zawartych w pkt. 1 i 2. 4. Zapoznaj się z algorytmem Bresenhama dla odcinków innych niż pionowe lub poziome. Stwórz schemat blokowy dla tego algorytmu uwzględniając specyfikę układu współrzędnych na ekranie monitora. Kolejność wykonywania ćwiczenia: I. Napisz program w Asemblerze wyświetlający na monitorze w dowolnym punkcie ekranu pojedynczy pixel w rozdzielczości 320x200 w kolorze białym i sprawdź jego działanie. II. Wykorzystując dyrektywę MACRO rozbuduj wcześniejszy program, tak aby w makrze znajdował się fragment kodu odpowiedzialny za umieszczenie piksela w zadanym punkcie ekranu. III. Przekształć program tak aby rysował odcinki o parametrach zadanych w Tabeli I. IV. Używając algorytmu Bresenhama połącz linią ukośną dwa (dowolne) końce linii uzyskanych z poprzedniego programu. Algorytm Bresenhama Założenia wstępne algorytmu Bresenhama: • kwadratowy raster • początkiem wektora jest początek układu współrzędnych – punkt (0, 0) • kat nachylenia α ≤ 45° Idea algorytmu Bresenhama jest optymalny, względem bieżącego punktu, wybór punktu następnego. Jak widzimy na rysunku (Rys. 2) wybór taki dokonuje sie na podstawie minimalnego błędu popełnianego przy liczeniu odległości „oczek” rastra od rzeczywistej linii. 1 Mimo ze ograniczamy sie do pierwszej ćwiartki, to rozszerzenie do pozostałych ćwiartek jest natychmiastowe i trywialne. 1 z 4 POLITECHNIKA KOSZALIŃSKA - WYDZIAŁ ELEKTRONIKI URZĄDZENIA ZEWNĘTRZNE Ćwiczenie laboratoryjne N 3 Drawing 1: Wybór następnego punktu w algorytmie Bresenhama Punkt początkowy wektora P 1 (0, 0) ogólnie P 1 (x 1 , y 1 ) Punkt końcowy wektora P 2 (dx, dy) ogólnie P 2 (x 2 , y 2 ) gdzie dx = x 2 − x 1 i dy = y 2 − y 1 z czego y = (dy/dx)x. e 1 = (dy/dx)(x + 1) − y e 2 = 1 − e 1 = 1 − (dy/dx)(x + 1) + y (2) Chcąc określić, dla wyboru którego z punktów E(x+1, y) czy NE(x+1, y+1) popełniamy większy błąd zbadamy różnice: e 1 − e 2 = 2(dy/dx)(x + 1) − 2y − 1 (3) zgodnie z założeniem, dla dx > 0 mnożąc obie strony przez dx nie zmieniamy znaku różnicy: (e 1 − e 2 )dx = 2(x + 1)dy − 2ydx − dx (4) Wprowadźmy zmienna decyzyjna δ jako: δ = (e 1 − e 2 )dx = 2(x + 1)dy − 2ydx − dx (5) Znak δ decyduje o wyborze punktu bliższego rzeczywistej prostej. jeśli δ < 0, to e 1 < e 2 , zatem należy wybrać punkt E(x + 1, y) jeśli δ ≥ 0, to e 1 ≥ e 2 , zatem należy wybrać punkt NE(x + 1, y + 1). Kolejne wartości bieżących x, y i δ wyznaczają formuły rekurencyjne: jeśli wybrano punkt E(x + 1, y): x i+1 = x i + 1 y i+1 = y i δ i+1 = 2(x i + 1 + 1)dy − 2y i dx − dx = 2(x i + 1)dy − 2y i dx − dx + 2dy = δ i + 2dy (6) jeśli wybrano punkt NE(x + 1, y + 1): x i+1 = x i + 1 y i+1 = y i + 1 δ i+1 = 2((x i + 1) + 1)dy − 2(y i + 1)dx − dx = δ i + 2(dy − dx) (7) Ponieważ dx i dy są stałymi, można dodatkowo uprościć obliczenia przyjmując: incrNE = 2dy − 2dx incrE = 2dy (8) a mnożenia zastąpić przesunięciem w lewo. 2 z 4 POLITECHNIKA KOSZALIŃSKA - WYDZIAŁ ELEKTRONIKI URZĄDZENIA ZEWNĘTRZNE Ćwiczenie laboratoryjne N 3 Tabela I: Długość [pixel] Lp. Kolor Kształt Pkt 'styku' 1 jasnoniebieski 30 ┌ 10, 10 2 jasnozielony 60 ┐ 300,10 3 jasno siny 90 └ 10,180 4 jasnoczerwony 120 ┘ 300,180 5 różowy 20 ├ 150,100 6 żółty 40 ┤ 150,100 7 biały 80 ┬ 150,100 8 zielony 160 ┴ 190,100 9 czerwony 25 ┼ 100,100 10 niebieski 50 ┌ 50,50 11 siny 100 ┐ 100,100 12 fioletowy 150 ┌ 5,5 13 brązowy 30 ┐ 200,20 14 jasnoszary 60 └ 70,100 15 szary 90 ┘ 100,100 16 jasnoniebieski 120 ├ 150,10 17 siny 20 ┤ 150,100 18 zielony 40 ┬ 30,30 19 jasnoczerwony 80 ┴ 100,120 20 jasnoszary 160 ┼ 160,160 Algorytm Bresenhama: procedure Bresenham(x0, y0, x1, y1, kolor: integer); var Δx,Δy, incrE, incrNE, δ, x, y: integer; begin Δx := x1 − x0; Δy := y1 − y0; δ := 2 * Δy − Δx; (* Wartość początkowa δ *) incrE := 2 * Δy; (* Inkrementacja przy wyborze punktu E *) incrNE := 2 * (Δy − Δx); (* Inkrementacja przy wyborze punktu NE *) x := x0; y := y0; PutPixel(x, y, kolor); (* Piksel początkowy *) 3 z 4 POLITECHNIKA KOSZALIŃSKA - WYDZIAŁ ELEKTRONIKI URZĄDZENIA ZEWNĘTRZNE Ćwiczenie laboratoryjne N 3 while x < x1 do begin if δ <= 0 then begin (* Wybrano E *) δ := δ + incrE; x := x + 1; end else begin (* Wybrano NE *) δ := δ + incrNE; x := x + 1; y := y + 1; end; PutPixel(x, y, kolor); end; (* while *) end; (* Bresenham *) Przykładowe pytania i polecenia: 1. Omów działanie napisanych programów. 2. Do czego służy MACRO? 3. Do czego służy EQU? 4. Omów zasadę działania algorytmu Bresenhama. 5. Do czego służy przerwanie 10h, 0Ch? 6. Co oznacza dyrektywa .STACK? 7. Czym różni się procedura od makra? Literatura S. Kruk: Programowanie w języku Assembler , PLJ, W-wa, 1992. G. Syck: Turbo Assembler. Biblia użytkownika , LT&P, W-wa, 1994. M. Gieroń: Przerwania systemowe i programy rezydentne , Karat, Tarnów, 1993. S. Kruk: Turbo debugger PLJ, W-wa, 1995. R. Goczyński, M.Tuszyński: Mikroprocesory 80286,80386 i i486 , Help, W-wa, 1991 P. Metzger, A. Jełowicki: Anatomia PC , Helion, Gliwice, 1997 4 z 4
[ Pobierz całość w formacie PDF ]
zanotowane.pldoc.pisz.plpdf.pisz.planette.xlx.pl
|
|
|
Tematy
Startustawa o ochronie konkurencji, Zarządzanie UE Katowice - licencjat - materiały, zarządzanie UE Katowice - 2 rok - materiałyutrwalanie-wykład-1, studia UTP Technologia Żywności, Utrwalanie żywnościustawa prawo wekslowe, Studia, I stopień, Semestr V, Prawo czekowe i weksloweurazy krwiak nadtwardówkowy, moje, pielęgniarstwo, Pielęg - materiałyna studia mgr, mgrustawa o działalności pożytku publicznego i o wolontariacie, Dziennikarstwo - studia magisterskie Public Relations, 3 SEM. PR, Fundrising i finansowanie projektów PRustawa prawo zamowien publicznych, Studia Administracja, DWSSP Asesor, semestr 5, zamówienia publiczneUzależnienie od alkoholu i jego wpływ na postawy i rozwój dzieci z rodzin, studia, oligo, psych kliniczna, rodziny dysfunkycjne, alkoholizmustawa o ochronie zdrowia psychicznego, Studia Pedagogika Specjalna mgr, Aspekty prawne w pedagogice specjalnejUSTAWA z dnia 5 grudnia 1996 r. o zawodach lekarza i lekarza dentysty (tekst jednolity), Szkoła, studia, dentystaustawa prawo zamówień publicznych, ADMINISTRACJA, III rok V semestr, Prawo zamówień publicznych
zanotowane.pldoc.pisz.plpdf.pisz.plalcotours.xlx.pl
|