sprawko 1 grafika Ask

WOJSKOWA AKADEMIA TECHNICZNA

Laboratorium NR 1 z przedmiotu:

Grafika komputerowa

Autor:

Michał Popławski

I9X6S1

Prowadzący:

mgr inż. Wojciech Sulej

  1. Wstęp teoretyczny.

Aby rozwiązać to zadanie laboratoryjne należy wiedzieć w jaki sposób działa urządzenie rastrowe. Obraz generowany jest piksel po pikselu od lewej strony do prawej i wierszami w kierunku dolnej krawędzi ekranu. Gdy zostanie wygenerowany ostatni piksel (w prawym dolnym rogu) następuje przejście do początku wyświetlania i rozpoczyna się proces tworzenia kolejnej klatki. Programista może jedynie sterować generatorem adresu odczytu i dzięki temu decydować jakiej barwy piksel pojawi się na kolejnym miejscu, które będzie wyświetlało urządzenie rastrowe.

W dostępnym dla nas symulatorze efektów mamy dostępne dwie funkcje, które umożliwiały nam wykonanie przeznaczonych dla nas zadań:

-ReadPixel(i, j); - wybiera piksel o współrzędnych (i, j) z mapy obrazu wczytanego do programu

-ReadTlo(N); - rysuje piksel czarny.

Mapa obrazu jest mapą bitową i posiada następujące współrzędne:

j → <1;L> - numer wiersza

i → <1;K> - numer kolumny.

Odczytywanie przykładowego piksela wygląda w następujący sposób:

W programie używamy także zmiennej p, która jest aktualnym przesunięciem obrazu (w każdej klatce obraz przesunięty jest o p pikseli w daną stronę). Gdy p=0 mamy do czynienia z obrazem niezmienionym. Z każdą klatką p jest zwiększane o 1 i obraz powoli się przesuwa.

  1. Analiza rozwiązań.

  1. algorytm sterujący generatorem adresu odczytu w celu uzyskania efektu przewijania pionowego obrazu w kierunku dolnej krawędzi ekranu.

Kod źródłowy efektu:

public void Efekt1()

{

if (p >= L) p = 0;

for (int j = L-p+1; j <= L; j++)

{

for (int i = 1; i <= K; i++)

ReadPixel(i,j);

}

for (int j = 1; j <= L - p; j++)

{

for (int i = 1; i <= K; i++)

ReadPixel(i, j);

}

}

Efekt graficzny:

Analiza rozwiązania:

Obraz podczas przewijania w dół dzieli się na dwie części. Obie wczytują wiersze w całości dlatego pętle wewnętrzne są z zakresu od 1 -> K. Pętle zewnętrzne, które w tym przypadku odpowiedzialne są za przewijanie w dół, mają zakresy:

- część górna: L – p + 1 -> L,

- część dolna: 1 -> L – p.

  1. Algorytm sterujący generatorem adresu odczytu w celu uzyskania efektu zasłaniania obrazu wzdłuż przekątnej ekranu w kierunku górnego prawego wierzchołka.

Kod źródłowy efektu:

public void Efekt2()

{

if (p >= L) p = 0;

for (int j = 1; j <= L-p; j++)

{

for (int i = 1; i <= p; i++)

ReadTlo(N);

for (int i = p + 1; i <= K; i++)

ReadPixel(i, j);

}

for (int j = 1; j <= p; j++)

{

for (int i = 1; i <= K; i++)

ReadTlo(N);

}

}

Efekt graficzny:

Analiza rozwiązania:

Efekt zasłaniania ma na celu pozostawić obraz w miejscu, w którym się znajduje, a na niego nakładać czarne tło, które w naszym przypadku ma zasłaniać po przekątnej w kierunku prawego górnego wierzchołka obrazu. Obraz należy podzielić na trzy części, dwie nadające tło i jedną wczytującą odpowiednie piksele. Pierwsza pętla zewnętrzna jest z zakresu od 1 -> L-p, w niej będą zawarte dwie pętle, z których pierwsza wczyta tło na obszar od 1 -> p, a na obszar od p+1 -> K wczytane zostaną piksele obrazu. Trzecia część jest to wczytanie tła w cały wiersz (1 -> K) w liniach od 1->p.

  1. Algorytm sterujący generatorem adresu odczytu w celu uzyskania efektu przesuwania obrazu wzdłuż przekątnej ekranu w kierunku dolnego prawego wierzchołka.

Kod źródłowy efektu:

public void Efekt3()

{

if (p >= L/2) p = 0;

for (int j = 1; j <= p; j++)

{

for (int i = 1; i <= K; i++)

ReadTlo(N);

}

for (int j = 1; j <= L - p; j++)

{

for (int i = 1; i <= p; i++)

ReadTlo(N);

for (int i = 1; i <= K - p; i++)

ReadPixel(i, j);

}

}

Efekt graficzny:

Analiza rozwiązania:

Obraz należy podzielić na trzy części, dwie nadające tło i jedną wczytującą odpowiednie piksele. Pierwsza część jest to wczytanie tła w cały wiersz (1 -> K) w liniach od 1->p. Druga pętla zewnętrzna jest z zakresu od 1 -> L-p, w niej będą zawarte dwie pętle, z których pierwsza wczyta tło na obszar od 1 -> p, a na obszar od 1 -> K-p wczytane zostaną piksele obrazu.

Wnioski:

Wszystkie zadania zostały wykonane w poprawny sposób. Przy tworzeniu algorytmów sterujących generatorem adresu odczytu należy zwracać dużą uwagę na liczbę pikseli odczytywanych w jednej linii, gdyż zdublowanie jakiegoś piksela lub pominięcie sprawia, że na ekranie pojawiają się błędy i obraz nie zostaje wyświetlany w poprawny sposób (co wynika z generowania pikseli zgodnie z zasadami działania urządzenia rastrowego).


Wyszukiwarka

Podobne podstrony:
sprawko 4 grafika Ask
sprawko 3 grafika Ask
sprawko 2 grafika Ask
sprawko 3 grafika
sprawko 1 grafika
sprawko 4 grafika
sprawko 2 grafika
WDA Lab2 Sprawko ask, WAT, semestr III, Wprowadzenie do automatyki
WDA Lab4 Sprawko ask, WAT, semestr III, Wprowadzenie do automatyki
SPRAWKO ASK, WAT, SEMESTR I, AOK, LAB
gk sprawko lab4 w szachownice wook, Studia, WAT Informatyka, s3 - GK - grafika komputerowa, LAB4
sprawko-pieci, Studia, WAT Informatyka, s3 - GK - lab grafika komputerowa, Lab2
gk sprawko, WAT, semestr III, Grafika komputerowa
WDA Lab5 Sprawko ask, WAT, semestr III, Wprowadzenie do automatyki
sprawko na grafike
sprawko na ostatnią grafike

więcej podobnych podstron