Ötletek és megoldások ...
Egy számítógépi program addig fejlődik, amíg meg nem haladja szerzője képességeit. Murphy törvénye a programozásról
Négy szabályos háromszög

Előzmények
Van egy - propeller tételnek nevezett - elemi geometriai összefüggés, amely nehezen tekinthető közismertnek:
- Legyen ABEΔ ,BCFΔ, CDGΔ és FHKΔ a sík négy azonos körüljárású szabályos háromszöge! Legyenek továbbá a P, Q, R pontok rendre az AD, GH és KE szakaszok felezőpontja! Ekkor a PQR Δ is szabályos.
Az alapalakzat:
Mi lenne ha ...
Mi lenne, ha nem csak a szerkesztés során alkalmazott centrális tükrözéseket hajtanánk végre, hanem az így kapott szabályos háromszöget rendre tükröznénk a P, Q, R pontokra? Ezzel olyan középpontosan szimmetrikus - un. affin szabályos - hatszögeket kapnánk, amelyeket a négy háromszög közül három-három vesz körbe.
Az "alakítsuk ki ,őrizzük meg a szimmetriát" elvét követve kiegészíthetjük a konstrukciót egy negyedik hatszöggel, amelynek az S középpontja a P, Q, R pontokkal együtt egy rombuszt alkot-
Az így kapott síkgeometriai alakzat - amelyet a továbbiakban alapalakzatnak tekintünk - a kiindulásul vett szabályos háromszögek két-lét példányából és négy affin szabályos hatszögből áll.
Mint ismert, két különböző centrumú centrális tükrözés szorzata egy olyan eltolás, amelynek vektora a két centrum távolságának a kétszerese, irányát a tükrözések sorrendje határozza meg. Ezt kihasználva az alapalakzatunk - amennyiben a háromszögek nem csúsznak egymásra - alkalmas arra, hogy ezzel hézagmentesen kiparkettázzuk a síkot.
A fenti applettel végzett kísérletek alapján könnyen észrevehető, hogy az alapalakzat szabályos háromszögei akkor - és csak akkor nem - ütköznek, ha a P, Q, R, S középpontú affin-szabályos hatszögek nem önátmetszők. Mivel azonban megengedjük, hogy a szabályos háromszögeink élben szomszédosak legyenek, sőt akár egyetlen ponttá zsugorodjanak, meg kell engednünk, hogy a négy affin szabályos hatszög két háromszöggé, vagy egy vonallá, egyetlen ponttá deformálódjon, csak az önátmetsző eseteket kell kizárnunk.
Elfogadható esetek:

Saját eljárások.
A klasszikus definíció szerint egy sokszögvonal szabályos ha az oldalainak az előírtakon - a sokszög csúcsain - kívül nincs közös pontjuk. Most viszont meg kell engednünk, hogy a hatszögek nem szomszédos éleinek a végpontjai, vagy maguk az oldalak illeszkedhetnek egymásra. Így a nem megengedett esetek kiszűréséhez körültekintően kialakított saját eljárás készítésére volt szükség.
Most két szakasz kölcsönös helyzete akkor is elfogadható, ha egyiknek valamelyik, vagy mindkét csúcsa illeszkedik a másikra. Csak azt azesetet kel kizárnunk,amikor a metszérpontjuk mindkét szakasz belső pontja.
Az alábbi appletben két saját eljárást képeztünk.
Az Msz() eredménye az az msz logikai változó, amelyet az f=Szakasz(A,B) ; g=Szakasz(C,D) ;
E=Metszéspont(f,g) és az msz=(¬DefiniáltE(E))∨E≟A∨E≟B∨E≟C∨E≟D parancsokkal kaptunk. Megjegyezzük, hogy az msz logikai változó értéke lényegében az A, B, C, D pontoktól függ, az eljárás bemenő adata mégis két szakasz.
A Jó() saját eljárás bemenő adata a hatszög középpontja, valamint három - adott sorrendben megadott -csúcsa. Eredménye a H hatszög, ha az oldalai megfelelnek, egyébként nem definiált:
H=Ha(Msz(p, r)∧Msz(p, q')∧Msz(q, r'),Sokszög(P,Q,R,P',Q',R'))
Ha a hatszög nem megfelelő, akkor a false választ kapjuk a DefiniáltE() kérdésre, egyébként maga geometriai alakzat ( ill. a területe) az eredmény, amely 0 is lehet.
Ezt a saját eljárást az aktuális *.ggb fájlba beolvasva megjelenik az eszköztárban az az eszköz is, amelyet a mentett eszköz használ.
Még egy ritkán használt fogást mutatunk be az alábbi appletben. A későbbiekben szükségünk lesz a fogom nevű logikai változóra, amely akkor kapja a true, értéket, ha éppen vonszoljuk az egérrel az L, M, N pontok bármelyikét, egyébként false. Ezt úgy érhető el, hogy e három pont frissitéskor aktivizálódó scriptjébe elhelyeztük az Érték(fogom,true) , az On Drag-end (vonszolás vége) scriptben pedig az Érték(fogom,false) parancsot.
A fenti eszköztár ... és a lenti alkalmazása
Javasoljuk olvasóinknak a fenti applet letöltését, és alapos tanulmányozását. Ebben a szokásos négyzetrács helyett a szabáéyos háromszög- (un. izometrikus) rácsot kapcsoltuk be. Ugyanis a Mozaik OK címmel jelzett alábbi appletben - amelynek az elkészítése volt a célunk - a speciális eseteket úgy kapjuk, hogy a konstrukciót előállító A, B, C pontok lehetőleg illeszkedjenek az izometrikus koordináta-rendszer rácspontjaira.. ugyanis ebben az esetben állíthatók elő azok a speciális esetek, amikor az alapalakzat háromszögei élben érintik egymást.
Az alábbi applet kezelőfelülete - szándékaink szerint - nem igényel sok magyarázatot. Azonban az elkészítése igen. Ezért nyomatékosan javasoljuk olvasóinknak, hogy töltsék le az alábbi appletet is, és vessék alá igen alapos tanulmányozásnak. Így tudják csak nyomon követni az ott alkalmazott fogásokhoz fűzött magyarázatokat. Egyúttal módjuk lesz arra is, hogy további figyelemre méltó speciális esetet rögzítsenek a több, mint 500 lehetőség közül.
Mozaik OK
Nézzük a részketeket!
A ◀ ▶ gombokkal rendre megnézhetjük az appletben rögzített 12 speciális esetet, Az alattuk lévő jelölőnégyzetekkel szabályozható, hogy csak a szerkesztéssel kapott , háromszögeket, hatszögeket lássuk-e vagy mindkettőt. összeset.
A harmadik jelölőnégyzet kapcsolja be a szerkesztő üzemmódot. Ezt bekapcsolva először csak az alapalakzat háromszögeit látjuk, de , ha a lapok nem csúsznak egymásra (OK) akkor láthatóvá tehető a mozaik szerkesztés közben is. Ekkor megjelenik egy szöveg, amely a szerkesztés pillanatnyi állapotát mutatja. Ezt a szöveg színe is jelzi.
- n - azt mutatja, melyik már mentett alakzatból indul a szerkesztés. Ha az A,B,C pontok nem rácspontok, akkor n = ?
- OK - megfelelő-e az alapalakzat. Ha OK=false, akkor vagy kilépünk a szerkesztés üzemmódból,vagy visszaállítjuk a ↷ ↶ gombra kattintva a korábbi megfelelő állapotot
- Rácspont? - Az A,B,C pontok rácspontok-e? Ez a szövegben megjelenő számok is mutatják, amelyek az A, B, C pontoknak az izometrikus rendszerben vett koordinátái. Itt jegyezzük meg, hogy a szerkesztés üzemmódban megjelennek a △ alakú (fix) P, Q, R, S pontok, amelyek lényegében behatárolják, hogy milyen határok között állítanak elő az A, B, C pontok megfelelő alapalakzatot.
- Hossz(M) - a már rögzített esetek száma.
- Pozíció - Ha a kiválasztott eset már szerepel a mentett esetek között, ennek a sorszáma.
- Fogom - Éppen mozgatjuk-e az alakzatot.