Python - Moduli


Primjer upotrebe modula u razvoju softvera je mala biblioteka grafičkih funkcija razvijenih korištenjem postojećih funkcija modula turtle, koje se mogu višestruko upotrebljavati i pojednostaviti programiranje. Modul korisneTurtleFunkcije sadrži nekoliko jednostavnih funkcija potrebnih u vektorskoj grafici za:

  • crtanje linije između dijve zadane tačke,
  • crtanje tačke ili ispis teksta na zadanim koordinatama,
  • crtanje kružnice zadanog poluprečnika s centrom u zadanoj tački,
  • crtanje pravougaonika zadane širine i visine s centrom u zadanoj tački.

Programska realizacija biblioteke funkcija je program koji treba sačuvati kao fajlu s nazivom korisneTurtleFunkcije.py (ili navedite naziv koji želite):

""" Modul korisneTurtleFunkcije.
    Funkcije za ctanje linije, tačke, kružnice,
    pravougaonika i ispis teksta pomoću funkcija
    iz modula Turtle.
"""
import turtle

# Crtanje linije od (x1, y1) do (x2, y2)
def drawLine(x1, y1, x2, y2):
    turtle.penup() # podizanje pera
    turtle.goto(x1, y1)
    turtle.pendown() #spuštanje pera
    turtle.goto(x2, y2)

# Ispis teksta od koordinata (x, y)
def writeText(s, x, y):
    turtle.penup() # podizanje pera
    turtle.goto(x, y)
    turtle.pendown() # spuštanje pera
    turtle.write(s) # ispis teksta

# Crtanje tačke na koordinatama (x, y)
def drawPoint(x, y):
    turtle.penup() # podizanje pera
    turtle.goto(x, y)
    turtle.pendown() # spuštanje pera
    turtle.begin_fill() # početak popunjavanja
    turtle.circle(3)
    turtle.end_fill() # popunjavanje oblika

# Crtanje kruga zadanog poluprečnika s centrom u(x,y)
def drawCircle(x=0, y=0, radius=10):
    turtle.penup() # podizanje pera
    turtle.goto(x, y-radius)
    turtle.pendown() # spuštanje peran
    turtle.circle(radius)

# Crtanje pravougaonika zadanih dimenzija od (x, y)
def drawRectangle(x=0, y=0, width=10, height=10):
    turtle.penup() # podizanje pera
    turtle.goto(x + width/2, y + height/2)
    turtle.pendown() # spuštanje pera
    turtle.right(90)
    turtle.forward(height)
    turtle.right(90)
    turtle.forward(width)
    turtle.right(90)
    turtle.forward(height)
    turtle.right(90)
    turtle.forward(width)

Na osnovu modula, s ovako definisanim funkcijama za crtanje, mogu se pisati kraći programi, kao što je npr. kratki testni program koji po jednom poziva svaku od funkcija modula korisneTurtleFunkcije:

""" Testni program za modul korisneTurtleFunkcije.

    Crta liniju, tačku, kružnicu, pravougaonik i
    ispisuje tekst pomoću funkcija iz modula
    korisneTurtleFunkcije.
"""

import turtle
from korisneTurtleFunkcije import *

# Crtanje linije između(-80,-80) i (80,80)
drawLine(-80, -80, 80, 80)

# Ispis teksta od (-40,-60)
writeText("Test korisnih Turtle funkcija", -40, -60)

# Crtanje tačke u (0, 0)
drawPoint(0, 0)

# Crtanje kružnice poluprečnika 113 od (0,0)
drawCircle(0, 0, 113)

# Crtanje pravougaonika 100x50 od (0,0)
drawRectangle(0, 0, 100, 50)
turtle.hideturtle()
turtle.done()

Rezultat izvršavanja programa prikazuje se u grafičkom prozoru: