WPF, vonallánc és poligon

Vonallánc osztály lehetővé teszi, hogy egy sor kapcsolódó vonalszakaszok. Ebben az esetben, egyszerűen szállított egy listát a X és Y koordináták segítségével a tulajdonságait pontok. Formálisan rámutat ingatlan igényel PointCollection tárgyat, de ez a gyűjtemény van töltve a XAML-jelölést a tömör szintaxis húr. Csak azt kell megadni pontok listáját és elválasztó leírt koordináták (térben vagy vessző) között.

Sokszögvonal elem lehet leírni csak két pontot. Például, következő példa Vonallánc ábra redundáns vonalat, amely kiterjeszti a (5,100) a (15,200)

De bonyolultabb tárgy Töröttvonal, kezdve a pont (10,150). Pont monoton elosztott balról jobbra, közrefogja a legnagyobb érték, és a legkisebb:

A kapott vonal az alábbiakban látható:

WPF, vonallánc és poligon

Itt, úgy tűnhet, hogy könnyebb lenne betölteni egy gyűjtőhelyre program segítségével a ciklus, amely automatikusan növeli az értékét az X és Y Ez igaz, ha azt szeretné, hogy dinamikus grafika - például egy diagram, változtatja az alakját információtól függően az adatbázisból. De ha csak meg kell építeni egy töredék egy rögzített képi tartalom, általában nincs szükség aggódni a konkrét koordináták számok.

Ahelyett, hogy felhívják a megfelelő grafikus alkalmazott eszköz, mint Expression Design, amely lehetővé teszi, hogy az export a kapott ütemezése XAML-jelölést.

Class Polygon - majdnem ugyanaz, mint a vonallánc. Ahogy vonallánc, sokszög osztály definiál egy pontgyűjtés, kap egy listát a koordinátákat. Az egyetlen különbség az, hogy a Polygon hozzáteszi végső összekötő szakasz kezdő- és végpontját. (Ha a végső pont már ugyanaz, mint a kezdeti, a Vonallánc Sokszög nem különbözik.) A belsejében a számok alkalmazásával állíthatjuk elő egy kitöltési Fill Brush:

WPF, vonallánc és poligon

Technikailag, akkor is meg a kitöltés tulajdonság az Töröttvonal objektumot. Ebben a helyzetben Töröttvonal festékek viselkednek, mintha egy sokszög. Más szóval, mintha láthatatlan összekötő szakasz végpontját a kezdet. Ez a hatás viszonylag korlátozott alkalmazása.

Egy egyszerű ábrát, ahol a vonalak nem metszik egymást, töltse ki a belső tartományában a fényt. Néha azonban szükséges, hogy foglalkozik a bonyolultabb a sokszög, amely egyáltalán nem világos, hogy mely részek „belül” a számokat (és kell árnyékolni), és amely - a külső.

Például nézd meg az alábbi ábrát, amely azt mutatja, a metsző vonal több sorban más, így a közepén egy szabálytalan régióban, amely lehet tölteni, vagy nem tölti ki. Nyilvánvaló, hogy meghatározza, mit kell átfesteni, lehetséges, hogy megtörje ezt a mintát több kisebb darabokra. De ehhez nem szükséges.

WPF, vonallánc és poligon

Minden egyes elem Sokszög és többszörös vonal hajlamos FillRule. amely lehetővé teszi, hogy válasszon a két különböző megközelítést, hogy kitöltse a területet. Az alapértelmezett beállítás a FillRule EvenOdd. Annak érdekében, hogy eldöntse, töltse ki a szükséges terület, a WPF megszámolja a sorok számát, amit akar átkelni időben eléri a külső oldali ábrán. Ha ez a szám páratlan, a terület tele van, még akkor is, ha ugyanazt a - nem. Ahhoz, hogy a központi terület a figura a képen, akkor kell átkelni két sort, így a terület nem festett.

A WPF is támogatja a megfelelő töltési nulla, ami egy kicsit bonyolultabb. Miután a szabály nem nulla, WPF végzi ugyanezt a számítást a vonalak, mint a EventOdd, de ugyanakkor figyelembe veszi az irányt minden sorban. Ha a sorok száma az egyik irányba (mondjuk a bal-jobb) a sorok száma irányította az ellenkező irányba (jobbról balra), a terület nincs kitöltve. Ha a különbség a két mennyiség nem nulla, a terület tele van. Ha az ingatlan FillRule nem nulla az ábrán az előző példában a belső tartományban van töltve.

Ha páratlan számú sorokat, a különbség a számlálók nem lehet nulla. Ezért nem nulla szabály mindig vezet a töltés legalább azonos számú területeken, mint a szabály EvenOdd, plusz talán még néhány.

Feature nem nulla szabály az, hogy a beállítások feltöltés módjától függ, amelyben a szám készült, nem, hogyan néz ki. Például, ugyanaz a szám lehet levonni, hogy a központ tele van (bár ez sokkal nehezebb - meg lehet kezdeni festmény a belső térséget, majd felhívni a külső sugarak az ellenkező irányba).