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 = ''
= 0
while (< 4):
    coords = coords + str(random.randrange(162)) + ","
    coords = coords + str(random.randrange(162)) + " "
    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
Votes disabled.
Tagek: