Sokszög forgatása és tükrözése vizuálisan grafikus alkalmazással – 2. rész

Az előző bejegyzésben egy olyan, egyszerű grafikus alkalmazást kezdtünk el felépíteni, amely egy csúcspontjaival definiálható sokszöget egy megadható forgáspont körül, szintén megadható szöggel elforgat, vagy egy kezdő- és végponttal meghatározható vonalra vonatkozóan tengelyesen tükröz.

Az előző bejegyzésben az alkalmazás alapfelépítést kezdtük meg számos szükséges metódus definiálásával. Azzal hagytuk abba, hogy a geometriai elemek (pont, sokszög és szakasz) megjelenítése marad hátra még. Ezeket vesszük sorra most.

A megjelenítést, kirajzolást végző metódusokat két csoportba rendeztük. Az egyik a kiinduló geometriai elemek megjelenítését végzik az előző bejegyzésben szereplő egéresemények hatására. Ezek tehát eseménykezelő metódusok lesznek és ezért argumentumként eseményobjektumot fogadnak. Ezek kódját láthatjuk alább. A megértést a kommentek segítik.

A másik metóduscsoportba tartozók az egyes nyomógombok hatására végbemenő transzformációkat (tükrözések vagy forgatás) hajtják végre. Mivel nyomógombokhoz, azok parancsvégrehajtásához kapcsolódnak, azaz ismert az esemény, ezért ezek argumentum nélküli metódusok lesznek. Ezek definíciója így néz ki:

Mindezek után az elkészített, teljes alkalmazás kódja a következő:

Az egyszerűség kedvéért a felületen mindig csak egy tükrözési tengely és egy forgáspont definiálható. Így egyértelmű, hogy a forgatást vagy tükrözést mire vonatkozóan kell elvégezni. Ha megengednénk több tengely vagy forgáspont kirajzolását, akkor a geometriai transzformációk elvégzése előtt külön meg kellene jelölni, hogy a több tengely, illetve forgáspont közül melyikre vonatkoztatva akarjuk végrehajtani. Ez azonban elvinné e mintaprogram alapcéljáról a figyelmet, ezért nem tesszük ezt lehetővé.

Ahhoz, hogy az egyes kirajzolt pontok szerepük szerint a kirajzolás után is megkülönböztethetőek legyenek, a sokszög csúcspontjai, a forgáspont és a tengelyvonal kezdő- és végpontja eltérő színnel jelennek meg a rajzfelületen.

Az alábbi képernyőképeken egy háromszög tengelyes tükrözése, majd egyik csúcspontja körül 180 fokkal történő forgatása látható.

A GUI alkalmazásokkal a Python tudásépítés lépésről lépésre című e-könyv „Grafikus felhasználói felület készítése” fejezete foglalkozik meglehetősen részletesen, számos példával segítve az ismeretek elsajátítását.

Érdekel a Python tudásépítés lépésről lépésre az alapoktól az első asztali alkalmazásig című e-könyv.