Kicsit visszatérünk a vektorgrafikához, mert miért ne! Az alábbi program véletlenszerűen rajzol egy négyszöget:

#!/usr/bin/python import random coords = '' i = 0 while (i < 4): coords = coords + str(random.randrange(1, 62)) + "," coords = coords + str(random.randrange(1, 62)) + " " i = i + 1 print """Content-type: image/svg+xml <?xml version="1.0" encoding="UTF-8" standalone="no"?> <svg xmlns:svg="http://www.w3.org/2000/svg" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" version="1.1" height="600" width="600"> <g> <path d="M """ + coords + """ z" style="fill: none; stroke: #000000;" /> </g> </svg> """;
http://apocalypse.rulez.org/~upi/surba/polygon.py [source]

Vegyük észre:

  • Az import paranccsal lehet a Python terjedelmes könyvtárából elemeket berántani a programunkban. Enélkül csak néhány egészen alapvető és közhasznú függvény áll rendelkezésre.
  • A Pythonban vannak eljárások, ezek közül kettőt látunk itt: a random.randrange és str nevűket.
    • Egy függvényt úgy lehet meghívni, hogy a neve után zárójelek között és vesszővel elválasztva felsoroljuk a paramétereit. Futás közben a eljárás majd szépen lefut, és behelyettesít valamilyen visszatérési értéket a helyére.
    • A random.randrange(1, 62) eljárás egy egész számot generál az [1, 62) intervallumban. Az eljárás két egész szám paramétert vár, és egy egész számmal tér vissza.
    • Mivel a Python + operátora nem hajlandó számot és szöveget "összeadni", ezért a számokat az str(szám) eljárással szöveggé alakítjuk kézi hajtással. Ez az eljárás egy szám paramétert vár és egy szöveggel tér vissza, ami a számnak a tízes számrendszerű reprezentációja lesz.
    • Később megtanuljuk majd, hogyan csináljunk saját eljárásokat is.
  • A koordináta-párokat az elején állítjuk össze, majd ügyesen belegyömöszöljük a kiírt SVG dokumentumba egy óvatlan pillanatban.

Feladatok

  • Legyen a sokszög éleinek a száma is véletlenszerű, háromszögtől nyolcszögig.
  • Legyen a sokszög éleinek száma véletlenszerű 4 és 12 között, de mindenképpen páros.
  • Bónusz feladat: Legyen a sokszög színe is véletlenszerű.
  • Bónusz feladat: Generáljunk négyzetet. Ha elfajuló, akkor pirosra színezzük ki, ha normális, akkor zöldre.
Utoljára módosította UPi 2017.VI.26 20:17-n
Bejegyzés módosítása | PermaLink
Szavazás letiltva.

Hozzászólások

0
Tagek: