1_Alakzat

1_Alakzat

1.· példa – Alakzat bejárás

Írjon olyan programot, amelyet végrehajtva a robot bejárja az ábrának megfelelő útvonalat (fekete színű szakaszok)! A mozgás során nem haladhat át kétszer ugyanazon az útvonalszakaszon! Az útvonal méreteit az ábrára írt számok értelmezik. A robot az alakzat bármelyik csúcsából indulhat.

Megjegyzés

A fekete vonalhálózat egyetlen összefüggő vonallal (a toll felemelése nélkül) megrajzolható úgy, hogy minden szakaszt pontosan egyszer rajzolunk meg. Általános iskolából ismert egyszerű gráfbejárás feladat.

Megoldás


20 cm lépésenként magyarázzuk. A bejárás útvonalát szemlélteti az alábbi ábra. Először a piros színű útvonalon haladunk végig. Tehát egy négyzetet ír le a robot mozgás közben. Ennek a kódja pl.:


A kódot lehet rövidíteni, hiszen vannak benne ismétlődő elemek (egyenesen előre és fordul 90 fokot). Erre megoldást a következő fejezetekben látunk. A sebességeket elegendő egyszer beállítani pl. a program elején. Ha nem állítjuk be a    14  kerékátmérő mértékét, akkor az alapértelmezettet használja, ami 17.5 cm, így a 20 cm-es előre mozgások távolságát az alaprobotnál helyesen értelmezi.

A piros színű útvonalról (lásd ábra) áttérünk a sárga útvonalra. A négyzet bejárása után, a robotnak fordulnia kell 135 fokot. A robot aktuális iránya és az új haladási irány között éppen 135 fokos fordulóra van szükség (90o + 45o). Ezután Pithagoras tételével kiszámíthatjuk  a 20 cm oldalhosszú négyet átlójának hosszát: 

Ennyit kell egyenesen 

√202 + 202

≈ 28.3 cm.

haladnia, majd fordulnia 75o-ot (180o – 60o – 45o). 20 cm-es előre haladás után egy 120o-os forduló jön (180o

– 60o). És így tovább … Az alábbi ábra segít a szögek értelmezé

A fordulási szögekhez meg kell határozni a tengelyelfordulási szögeket. Egyenes arányossággal számítható. Ha tudjuk, hogy 90o-os robotelforduláshoz 180o-os tengelyfordulat szükséges, akkor ez alapján számíthatók a szükséges tengelyelfordulási szögek. mozgásnál ügyelni kell a fordulás irányára, ami a program második részében éppen ellentétes a korábbival.

A teljes kód a fenti ábrán látható (az ábra melletti jelölés a piros és sárga útvonalrészt jelenti). Természetesen a kód egyszerűsíthető, de már a motorok használatával is megoldhatók komplexebb feladat.