
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.
