Pravidlo nenulového indexu

Ve dvourozměrné počítačové grafice znamená pravidlo nenulového indexu způsob, jak určit, zda bod leží uvnitř uzavřené křivky. Na rozdíl od podobného pravidla lichá-sudá tento algoritmus spoléhá na znalost směru jízdy pro každou část křivky.

Pro danou křivku C a daný bod P sestrojíme paprsek (přímku) směřující z bodu P libovolným směrem do nekonečna. Najděte všechny průsečíky C s tímto paprskem. Index bodu vypočítáme takto: pro jakýkoli průsečík ve směru hodinových ručiček (křivka prochází paprskem zleva doprava při pohledu z bodu P) odečteme 1, pro jakýkoli průsečík proti směru hodinových ručiček (křivka prochází zprava doleva) , při pohledu z bodu P) přidejte 1. Pokud je plný index bodu nula, P je mimo C, jinak je bod uvnitř.

Bodový index efektivně vypočítá, kolik plných otáček proti směru hodinových ručiček křivka udělá kolem bodu P. (Pokud by P byl hřebík a C byl smyčkový kus nitě, odtažení části nitě od hřebíku by buď vytáhlo celou nit, nebo nit se několikrát obtočí kolem hřebíku.) Některé implementace počítají počet průchodů ve směru hodinových ručiček, takže průchody ve směru hodinových ručiček přidávají 1 a průchody proti směru hodinových ručiček odečítají 1. Výsledek je stejný.

Formální definice indexu bodu P vzhledem ke křivce C (kde P neleží na křivce) je následující:

Předpokládejme, že bod Q prochází podél křivky C. Konec vektoru z P do Q se po normalizaci pohybuje po jednotkové kružnici se středem v P. Index bodu je počet otáček konce vektoru. [jeden]

Počítačová vektorová grafika SVG má funkce, které vám umožňují používat pravidlo nenulového indexu při kreslení polygonů. [2]

Viz také

Poznámky

  1. James D. Foley, Andries Van Dam, Steven K. Feiner & John F. Hughes. Počítačová grafika: Principy a praxe. - Addison-Wesley, 1996. - S. 965. - ISBN 9780201848403 .
  2. SVG FillProperties Archived 28. října 2014 na Wayback Machine , w3c.org, staženo 2012 12 30

Odkazy