Rasterizace úsečky.

Slides:



Advertisements
Podobné prezentace
Mechanika tuhého tělesa
Advertisements

Rovnice a nerovnice s neznámou pod odmocninou
Vzájemná poloha přímky a kružnice (kruhu)
TENTO PROJEKT JE SPOLUFINANCOVÁN EVROPSKÝM SOCIÁLNÍM FONDEM
Vzájemná poloha dvou kružnic
Vzájemná poloha dvou kružnic
Kolmice k rovině a n na p pa k s f R h
kvantitativních znaků
VEKTOR A POČETNÍ OPERACE S VEKTORY
Otáčivé účinky síly (Učebnice strana 70)
Vstupy a výstupy v JavaScriptu Vstup: použitím metody prompt objektu window čtením hodnot z položek formuláře Výstup : použitím metody alert objektu window.
Jméno autora: Mgr. Zdeněk Chalupský Datum vytvoření:
Seminární práce číslo: 7 Zpracoval : Vladimír KORDÍK T-4.C
PA081 Programování numerických výpočtů Přednáška 2.
ALGO – Algoritmizace 1. cvičení
Vzájemná poloha dvou kružnic
Algoritmy I Cvičení č. 4.
Regresní analýza a korelační analýza
IV/ Množiny bodů dané vlastnosti
Kvadratické rovnice pro S O U (x - 5)(x + 5) = 0 S = 1/2gt2
Algoritmizace a programování Podmíněné a cyklické příkazy- 08
GONIOMETRIE Následující prezentace doplňuje kapitolu goniometrie o
Diferenciální rovnice – řešené příklady
VY_32_INOVACE_26 Osa úhlu Matematika a její aplikace pro 6. třídu – Geometrie v rovině a prostoru – Úhly Mgr. Lenka Andrýsková, Ph.D. únor 2011 ZŠ a MŠ.
Téma: ABSOLUTNÍ HODNOTA CELÝCH ČÍSEL 1
Výukový materiál vytvořený v rámci projektu „EU peníze školám“ Škola: Střední škola právní – Právní akademie, s.r.o. Typ šablony: III/2 Inovace a zkvalitnění.
Lineární rovnice Kvadratické rovnice Soustavy rovnic
Vzájemná poloha dvou kružnic
kvantitativních znaků
Grafické formáty.
Informatika I 2. přednáška
Základy číslicové techniky
* Středová souměrnost Matematika – 7. ročník *
Konstrukce trojúhelníku s využitím vět o shodnosti
HYPERBOLA Hyperbola je množina bodů v rovině, které mají od dvou daných pevných bodů – ohnisek F 1 a F 2 stálý kladný rozdíl vzdáleností, menší než vzdálenost.
Kruhový registr. Kruhový registr zpracovává načtenou informaci do registru. Charakteristikou kruhového registru je, že se na rozdíl od předchozích typů.
KONVEXNOST A KONKÁVNOST FUNKCE INFLEXNÍ BODY
Opakování.. Práce se zlomky.
Gymnázium, Broumov, Hradební 218
Kruhový registr.
Mechanika tuhého tělesa 2
Regrese Aproximace metodou nejmenších čtverců
Pascal - cykly.
Nerovnice v podílovém tvaru
ELEKTROMAGNET.
Tento výukový materiál vznikl v rámci Operačního programu Vzdělávání pro konkurenceschopnost 1. KŠPA Kladno, s. r. o., Holandská 2531, Kladno,
Dynamika I, 6. přednáška Obecný rovinný pohyb Obsah přednášky : obecný rovinný pohyb tělesa, analytické řešení, pólová konstrukce rozklad pohybu Doba studia.
Gymnázium Vincence Makovského se sportovními třídami Nové Město na Moravě VY_32_INOVACE_INF_RO_16 Digitální učební materiál Sada: Úvod do programování.
PARABOLA Parabola je množina bodů v rovině, které mají od pevného bodu – ohniska F a pevné přímky d (F = d) stejné vzdálenosti. Přímka d se nazývá řídící.
ZPG -Základy Počítačové Grafiky cvičení 3
Rovnice s absolutní hodnotou
OTÁČIVÝ ÚČINEK SÍLY NA TĚLESO OTÁČIVÉ KOLEM PEVNÉ OSY
ROVNICE S ABSOLUTNÍ HODNOTOU
Anti – Aliasing Ondřej Burkert atrey.karlin.mff.cuni.cz/~ondra/stranka.
Rasterizace úsečky. DDA algoritmus Dynamic Decrease algoritmus Pro začátek popis pro úsečky se směrnicí mezi 0 a 1 (řídící osa x) Dalších 8 variant se.
Diference a diferenciál Způsoby vyčíslování termodynamických dat.
ALGORITMIZACE A ZÁKLADY PROGRAMOVÁNÍ
Symbolika Matematika – 7. ročník Základní škola Jakuba Jana Ryby Rožmitál pod Třemšínem Efektivní výuka pro rozvoj potenciálu žáka projekt v rámci Operačního.
Pascal - větvení.
Výkonové zesilovače.
Lineární funkce Rozdělení lineárních funkcí Popis jednotlivých funkcí.
Výukový materiál zpracován v rámci projektu
Strukturované typy proměnných v programovacím jazyce Pascal - 1.hodina
Zoner Callisto – křivky
KRESLENÍ OBLASTÍ JANA ŠTANCLOVÁ
© Copyright Radim Štefan
Opakování základních příkazů a syntaxí v programovacím jazyce Pascal
Početní výkony s celými čísly: sčítání a odčítání
Vektorová grafika.
IV. část – Vzájemná poloha dvou
Transkript prezentace:

Rasterizace úsečky

DDA algoritmus Dynamic Decrease algoritmus Pro začátek popis pro úsečky se směrnicí mezi 0 a 1 (řídící osa x) Dalších 8 variant se udělá symetricky

DDA algoritmus Δx = x2 – x1 ,Δy = y2 – y1, k= Δy/Δx dx = 1, dy = k*dx = k Xi+1 = xi + dx = xi +1 Yi+1 = yi + dy = yi + k Yi+1 zaolrouhlím na celé číslo

DDA algoritmus

DDA algoritmus Základní nevýhoda: pracuje s neceločíselnou aritmetikou

Bresenhamův algoritmus Jack Elton Bresenham (* 1937) Zaměstnanec IBM a Winthrop University (Rock Hill, Jižní Karolína, USA) Algoritmus z roku 1962

Bresenhamův algoritmus y = kx + b y* = k(xi+1) + b d1 = y*– yi = k(xi+1) + b - yi d2 = yi + 1 –y* = yi + 1 - k(xi+1) - b xi+1,yi+1 d2 y* d1 xi,yi xi+1,yi

Bresenhamův algoritmus Δd = d1 – d2 = 2k(xi+1) – 2yi +2b -1 Pro Δd kladné použiji bod yi+1 Pro Δd záporné použiji bod yi xi+1,yi+1 d2 y* d1 xi,yi xi+1,yi

Bresenhamův algoritmus Δd = d1 – d2 = 2*Δy/Δx*(xi+1) – 2yi +2b -1 Jediná neceločíselná hodnota ve vyorci je směrnice k = Δy/Δx. Vynásobím celý vzorec kladnou hodnotou Δx. Tím se smysl použití znaménka nemění. pi = Δd Δx = 2Δyxi+ 2Δy – 2Δx yi + Δx (2b-1) Hodnota pi se nazývá i-tá predikce

Výpočet následující predikce pi+1 = 2Δy(xi+1) + 2Δy – 2Δx yi+1 + Δx (2b-1) pi+1 = pi + 2Δy – 2Δx( yi+1- yi) Pro pi záporné položím yi+1 = yi a pi+1 = pi + 2Δy Pro pi nezáporné položím yi+1 = yi + 1 Počáteční hodnota p1 = 2 Δy – Δx

Další varianty Směrnice větší než 1 → řídící osa y.

Další varianty Směrnice záporná → drobné změny algoritmu, místo přičítání 1 odečítám 1. Dvě varianty pro řídící osu x a y.

Varianty pro x1 > x2 Úsečka vede „zprava doleva“. Buď řešit zvlášť (4 další varianty), nebo prohodit body x1 a x2.

Svislá úsečka (x1 = x2) Vůbec nemá směrnici, nutno řešit samostatným jednoduchým algoritmem.

Jádro programu Bressenham DELTA_Y:=Y2-Y1; DELTA_X:=X2-X1; K1:=2*DELTA_Y; K2:=2*(DELTA_Y-DELTA_X); PREDIKCE:=2*DELTA_Y-DELTA_X; X:=X1; Y:=Y1; bod (X,Y,BARVA); {vykresli pocatecni bod} while X<=X2 do begin X:=X+1; if PREDIKCE > 0 then begin Y:=Y+1; PREDIKCE:=PREDIKCE+K2 end else PREDIKCE:=PREDIKCE+K1; bod(X,Y,BARVA); {vykresli dalsi bod} end; {konec vykreslovani usecky}