Algoritmy pro ořezávání 2D polygonů

Podobné dokumenty
Mgr. Markéta Trnečková, Ph.D. Palacký University, Olomouc

Geometrické vyhledávání

Fergusnova kubika, která je definována pomocí bodu P1, vektoru P1P2, bodu P3 a vektoru P3P4

Text úlohy. Která barva nepatří do základních barev prostoru RGB? Vyberte jednu z nabízených možností: a. Černá b. Červená c. Modrá d.

ÚLOHY S POLYGONEM. Polygon řetězec úseček, poslední bod je totožný s prvním. 6 bodů: X1, Y1 až X6,Y6 Y1=X6, Y1=Y6 STANOVENÍ PLOCHY JEDNOHO POLYGONU

Je-li dána hranolová nebo jehlanová plocha s podstavou v rovině σ a rovina řezu ρ:

Konvexní obal a množina

Elementární plochy-základní pojmy

PROGRAMY PRO GIS. Formovat/formulovat problém pro aplikaci v počítači. Fungování GIS programů na základní úrovni - "uvažovat" jako počítač

Geometrické vyhledání.

Algoritmy ořezávání. Ořezávací oblast. Test polohy bodu vzhledem ke konvexnímu mnohoúhelníku. Test polohy bodu vzhledem k pravoúhelníku.

Algoritmizace prostorových úloh

Vzorce počítačové grafiky

5 Algoritmy vyplňování 2D oblastí

C. METRICKÉ VLASTNOSTI ÚTVARŮ V PROSTORU

INOVACE BAKALÁŘSKÝCH A MAGISTERSKÝCH STUDIJNÍCH OBORŮ NA HORNICKO-GEOLOGICKÉ FAKULTĚ VYSOKÉ ŠKOLY BÁŇSKÉ - TECHNICKÉ UNIVERZITY OSTRAVA

Urci parametricke vyjadreni primky zadane body A[2;1] B[3;3] Urci, zda bod P [-3;5] lezi na primce AB, kde A[1;1] B[5;-3]

1. Dva dlouhé přímé rovnoběžné vodiče vzdálené od sebe 0,75 cm leží kolmo k rovine obrázku 1. Vodičem 1 protéká proud o velikosti 6,5A směrem od nás.

1 Analytická geometrie

Voronoiův diagram. RNDr. Petra Surynková, Ph.D. Univerzita Karlova v Praze Matematicko-fyzikální fakulta

Kružnice, úhly příslušné k oblouku kružnice

Univerzita Palackého v Olomouci

11 Vzdálenost podprostorů

Dvěma různými body prochází právě jedna přímka.

2. Vyšetřete všechny možné případy vzájemné polohy tří různých přímek ležících v jedné rovině.

Definice Tečna paraboly je přímka, která má s parabolou jediný společný bod,

KRUHOVÁ ŠROUBOVICE A JEJÍ VLASTNOSTI

3.4.2 Rovnováha Rovnováha u centrální rovinné silové soustavy nastává v případě, že výsledná síla nahrazující soustavu je rovna nule. Tedy. Obr.17.

Bézierovy křivky Bohumír Bastl KMA/GPM Geometrické a počítačové modelování Bézierovy křivky GPM 1 / 26

FAKULTA STAVEBNÍ VUT V BRNĚ PŘIJÍMACÍ ŘÍZENÍ PRO AKADEMICKÝ ROK

Úvod do mobilní robotiky AIL028

Topografické plochy KG - L MENDELU. KG - L (MENDELU) Topografické plochy 1 / 56

ZÁKLADNÍ PLANIMETRICKÉ POJMY

Úvod Typy promítání Matematický popis promítání Implementace promítání Literatura. Promítání. Pavel Strachota. FJFI ČVUT v Praze

19 Eukleidovský bodový prostor

A[a 1 ; a 2 ; a 3 ] souřadnice bodu A v kartézské soustavě souřadnic O xyz

Odvození středové rovnice kružnice se středem S [m; n] a o poloměru r. Bod X ležící na kružnici má souřadnice [x; y].

P L A N I M E T R I E

(4x) 5 + 7y = 14, (2y) 5 (3x) 7 = 74,

Shodná zobrazení. bodu B ležet na na zobrazené množině b. Proto otočíme kružnici b kolem

1 Lineární prostory a podprostory

Watkinsův algoritmus řádkového rozkladu

14. přednáška. Přímka

Úterý 8. ledna. Cabri program na rýsování. Základní rozmístění sad nástrojů na panelu nástrojů

Hammingovy kódy. dekódování H.kódů. konstrukce. šifrování. Fanova rovina charakteristický vektor. princip generující a prověrková matice

Operace s uzavřenými oblastmi v GIS

3.2. ANALYTICKÁ GEOMETRIE ROVINY

11 Zobrazování objektů 3D grafiky

68. ročník Matematické olympiády 2018/2019

Fakulta elektrotechniky a informatiky Počítačová grafika. Zkouška ústní

Šroubovice... 5 Šroubové plochy Stanovte paprsek tak, aby procházel bodem A a po odrazu na rovině ρ procházel bodem

Rozvinutelné plochy. tvoří jednoparametrickou soustavu rovin a tedy obaluje rozvinutelnou plochu Φ. Necht jsou

GEOMETRICKÁ OPTIKA. Znáš pojmy A. 1. Znázorni chod význačných paprsků pro spojku. Čočku popiš a uveď pro ni znaménkovou konvenci.

SHODNÁ ZOBRAZENÍ V ROVINĚ GEOMETRICKÁ ZOBRAZENÍ V ROVINĚ SHODNÁ ZOBRAZENÍ

1. MONGEOVO PROMÍTÁNÍ

VE 2D A 3D. Radek Výrut. Abstrakt Tento článek obsahuje postupy pro výpočet Minkowského sumy dvou množin v rovině a pro výpočet Minkowského sumy

Grafy. RNDr. Petra Surynková, Ph.D. Univerzita Karlova v Praze Matematicko-fyzikální fakulta.

AXONOMETRIE - 2. část

Cyklografie. Cyklický průmět bodu

CVIČNÝ TEST 15. OBSAH I. Cvičný test 2. Mgr. Tomáš Kotler. II. Autorské řešení 6 III. Klíč 15 IV. Záznamový list 17

CVIČNÝ TEST 22. OBSAH I. Cvičný test 2. Mgr. Tomáš Kotler. II. Autorské řešení 6 III. Klíč 13 IV. Záznamový list 15

EU peníze středním školám digitální učební materiál

Matematika 1 MA1. 1 Analytická geometrie v prostoru - základní pojmy. 4 Vzdálenosti. 12. přednáška ( ) Matematika 1 1 / 32

10 Přednáška ze

Omezíme se jen na lomené čáry, jejichž nesousední strany nemají společný bod. Jestliže A 0 = A n (pro n 2), nazývá se lomená čára uzavřená.

Triangulace. Význam triangulace. trojúhelník je základní grafický element aproximace ploch předzpracování pro jiné algoritmy. příklad triangulace

Konstruktivní geometrie PODKLADY PRO PŘEDNÁŠKU

c jestliže pro kladná čísla a,b,c platí 3a = 2b a 3b = 5c.

- shodnost trojúhelníků. Věta SSS: Věta SUS: Věta USU:

Jana Dannhoferová Ústav informatiky, PEF MZLU

Vyplňování souvislé oblasti

obecná rovnice kružnice a x 2 b y 2 c x d y e=0 1. Napište rovnici kružnice, která má střed v počátku soustavy souřadnic a prochází bodem A[-3;2].

Použití dalších heuristik

Dynamické datové struktury III.

Select sort: krok 1: krok 2: krok 3: atd. celkem porovnání. výběr nejmenšího klíče z n prvků vyžaduje 1 porovnání

4. Statika základní pojmy a základy rovnováhy sil

Obsah prezentace. Základní pojmy v teorii o grafech Úlohy a prohledávání grafů Hledání nejkratších cest

Úsečka spojující sousední vrcholy se nazývá strana, spojnice nesousedních vrcholů je úhlopříčka mnohoúhelníku.

1. Vektorové algoritmy jejich výstupem je soubor geometrických prvků, např.

Úlohy domácí části I. kola kategorie C

Základy algoritmizace. Hašování

Mocninná funkce: Příklad 1

Úvod do výpočetní geometrie. Základní vztahy.

ZŠ ÚnO, Bratří Čapků 1332

PRŮŘEZOVÉ CHARAKTERISTIKY

Výpočetní geometrie. Pavel Strachota. 9. listopadu FJFI ČVUT v Praze

10. cvičení - LS 2017

0. Pak existuje n tak, že Bµ APn

Přijímací zkouška na MFF UK v Praze

od zadaného bodu, vzdálenost. Bod je střed, je poloměr kružnice. Délka spojnice dvou bodů kružnice, která prochází středem

Příklady pro předmět Aplikovaná matematika (AMA) část 1

67. ročník matematické olympiády III. kolo kategorie A. Přerov, března 2018

Matematika I, část I. Rovnici (1) nazýváme vektorovou rovnicí roviny ABC. Rovina ABC prochází bodem A a říkáme, že má zaměření u, v. X=A+r.u+s.

Algoritmy výpočetní geometrie

Úlohy klauzurní části školního kola kategorie A

CVIČNÝ TEST 37. OBSAH I. Cvičný test 2. Mgr. Tomáš Kotler. II. Autorské řešení 5 III. Klíč 13 IV. Záznamový list 15

Analytická geometrie kvadratických útvarů v rovině

Dijkstrův algoritmus

CVIČNÝ TEST 55. OBSAH I. Cvičný test 2. Mgr. Tomáš Kotler. II. Autorské řešení 7 III. Klíč 19 IV. Záznamový list 21

Příklady k analytické geometrii kružnice a vzájemná poloha kružnice a přímky

Transkript:

Algoritmy pro ořezávání 2D polygonů

Využití ořezávání v praxi odstranění částí obrazu nacházejících se mimo zobrazitelnou oblast výstupního zařízení

Využití ořezávání v praxi Vyplňování 3D objektů Vytvoření vysoce kvalitního povrchu zobrazovaných objektů pomocí zkoumání odrazů, odlesků a lomů paprsků světla Přidělování objektů scény multiprocesorovým systémům

Polygon Uspořádaný seznam bodů /vrcholů/, kde první a poslední bod je identický

Algoritmus Cohen-Sutherland Algoritmus slouží k ořezávání čar vůči obdélníku. Hlavní výhodou algoritmu je jednoduché a rychlé zakódování jednotlivých případů pozice úsečky vůči obdélníku. Po zakódování pozic můžeme snadno vynechat úsečky, které leží zcela mimo nebo uvnitř obdélníku.

Algoritmus Cohen-Sutherland Hodnota 1 v kódu znamená hodnotu true a kód je tvořen podle následujících pravidel (bity počítáme zprava): bit 0 - bod je vlevo od obdélníka bit 1 - bod je vpravo od obdélníka bit 2 - bod je pod obdélníkem bit 3 - bod je nad obdélníkem Po zakódování mohou nastat následující případy: kód oblasti je roven nule pro oba koncové body úsečky - přímka leží uvnitř oblasti, kódy obou koncových bodů mají stejný bit nenulový - přímka leží mimo obdélník, u ostatních možností přímka prochází hranou obdélníka.

Průsečíky s ořezávacím oknem Výpočet průsečíku s příslušnou hranou obdélníka se spočítá následovně: je-li bod vlevo: (xmin, k*(xmin-x1)+y1) je-li bod vpravo: (xmax,k*(x1-xmax)+y1) je-li bod nad: (q*(y1-ymax)+x1,ymax) je-li bod pod: (q*(ymin-y1)+x1,ymin) kde k = (y2-y1)/(x2-x1) pro x1!= X2, q = (x2-x1)/(y2-y1) pro y1!= y2

Algoritmus Cohen-Sutherland

Algoritmus Cyrus-Beck Tento algoritmus slouží k ořezávání úseček vůči konvexnímu n-úhelníku. Algoritmus je založen na znalosti normál hran konvexního n-úhelníka, podle kterého úsečky ořezáváme. Přímka může protínat tento n-úhelník nejvýše ve dvou bodech, pokud pomineme speciální případ, kdy úsečka leží na některé hraně.

Cyrus-Beck algoritmus

Algoritmus Weiler-Atherton Algoritmus slouží k ořezávání obecného nekonvexních n- úhelníku jiným obecným nekonvexním n-úhelníkem Oba n-úhelníky mohou obsahovat i díry. Po oříznutí nám může vzniknout i několik samostatných n-úhelníků.

Weiler-Atherton

Algoritmus Greiner - Hormannův Günther Greiner Kai Hormann Friedrich Alexander University Erlangen, Německo

Vstup Uspořádané posloupnosti vrcholů ořezávaného a ořezávacího polygonu

Výstup Množina všech bodů ležících v S && C Polygon Seznam vzniklých polygonů

Sebeprotínající polygon Oblasti, patřící do výsledku určíme pomocí tzv. WINDING NUMBER Je li WN liché,, pak náleží výsledku

Winding Number double isleft(point P0, Point P1, Point P2) { return((p1.x - P0.x) * (P2.y - P0.y) - (P2.x - P0.x) * (P1.y - P0.y)); } int WindingNumber(Point P, Point * V, int n) { int WN = 0; // počítadlo otáček //smyčka přes všechny hrany polygonu } for (int i=0; i<n; i++){ // hrana z V[i] do V[i+1] if (V[i].y <= P.y){ if(v[i+1].y>p.y) if(isleft(v[i],v[i+1],p)>0 ++wn; // máme otáčku proti směru } else{ // V[i].y> P.y if(v[i+1].y <= P.y) if(isleft(v[i],v[i+1],p)<0) --wn; // máme otáčku po směru } } return wn;

Vlastnosti Winding Number Při pohybu bodu P nebo hrany E, zůstává z WN konstantní,, dokud P zůstane v kladné vzdálenosti od hrany E. Pro křivku ω je WN konstantní v podprostoru R x R ω.. Leží-li bod P v neohraničené komponentě, pak má WN = 0 Při překřížení paprsku a hrany se WN změní o +/-1.

První fáze algoritmu Určení všech průsečíků hran C a S polygonu Složitost minimálně m*n /m = # vrcholů ů S, n = # vrcholů ů C/ C Všechny tyto průsečíky budou vrcholy ve výsledku Ukládáme si ukazatele na stejný průsečík v seznamu druhého polygonu Jejich následné zařazení do seznamu vrcholů obou polygonů K tomu je zapotřebí spočítat tzv. α parametr,, z kterého lze určit vzdálenost průsečíku od počátečního vrcholu hrany a zařadit tak správně všechny průsečíky na jedné hraně Platí 0 < α < 1 P.x = V[i].x + α * V[i+1].x P.y = V[i].y + α * V[i+1].y

Zvláštní případy Leží-li nám bod, či hrana na hraně druhého polygonu, je nutné jej posunout o nejmenší možný úsek, výsledek zůstane stejný

Druhá fáze algoritmu V fázi dvě procházíme všechny průsečíky a přiřazujeme jim I/O atribut Ten určuje, zda v daném průsečíku vstupujeme dovnitř polygonu nebo jej opouštíme. Stejný průsečík může mít rozdílné atributy v rámci polygonů Vezmeme libovolný vrchol polygonu, zjistíme pomocí WN, zda je uvnitř či vně a jdeme po seznamu vrcholů, vždy, když narazíme na průsečík, změníme atribut a uložíme jej k danému průsečíku Toto provedeme pro oba polygony

Třetí fáze algoritmu

Zdroje Greiner, G. and Hormann, K. 1998. Efficient clipping of arbitrary polygons. ACM Trans. Graph. 17, 2 (Apr. 1998), 71-83. DOI= http://doi.acm.org/10.1145/274363.274364 Vatti, B. R. 1992. A generic solution to polygon clipping. Commun. ACM 35, 7 (Jul. 1992), 56-63. DOI= http://doi.acm.org/10.1145/129902.129906 http://notorola.sh.cvut.cz/~bruxy/algoritmy_pocitacove_grafiky.doc http://herakles.zcu.cz/education/zpg/cviceni.php?no=9