Ympyrä

Lisätään ikkunaan ympyrä

Edellisessä osassa teimme ohjelman, jolla on ikkuna. Pelkkä musta ikkuna on vähän tylsä. Lisätään siis ikkunaan ympyrä. Pygletistä löytyy ympyröitä varten olio ympyrä eli Circle. Ei pohdita nyt sen enempää mikä ympyrä on, vaan voit kopioida alla olevan koodin, joka luo ympyrän ja laittaa sen säilöön muuttujaan nimeltä ympyrä.

ympyrä = pyglet.shapes.Circle(x = 400, y = 300, radius = 100)

Laita koodi ikkunan luomisen jälkeen.

Jotta ympyrä tulisi näytölle, se pitää piirtää ikkunaan. Sen saa aikaiseksi seuraavalla koodilla:

@ikkuna.event
def on_draw():
    ympyrä.draw()

Pohditaan seuraavassa osassa tarkemmin mitä tämä koodi tekee. Nyt riittää, että se lisätään ohjelmaan koodien ikkuna.clear() ja pyglet.app.run() väliin.

Python-ohjelman pitäisi nyt siis kokonaisuudessaan näyttää tältä:

import pyglet

ikkuna = pyglet.window.Window(width = 800, height = 600)
ympyrä = pyglet.shapes.Circle(x = 400, y = 300, radius = 100)

ikkuna.clear()

@ikkuna.event
def on_draw():
    ympyrä.draw()

pyglet.app.run()

Nyt kun laitamme ohjelman käyntiin, saamme seuraavanlaisen näkymän:

ympyrä ikkunassa

Koodi suomeksi

Pythonissa ja pygletissä lähes kaikki komennot ovat englanniksi. Tässä on käännös miltä ohjelmamme näyttäisi jos Python ja Pyglet olisivat suomenkielisiä.

ohjelma suomeksi

Tehtävät

  1. Luo uusi python-ohjelma, jolla on ikkuna (leveys 800, korkeus 600) ja joka avautuu mustana, kun ohjelman laittaa käyntiin.

  1. Jatka edellisen tehtävän ohjelmaa.

a) Lisää ohjelmaan koodi, joka tallettaa muuttujaan nimeltä ympyrä pygletin ympyrän.

b) Laita ympyrä ilmestymään ikkunaan.


  1. Ympyrämuodon saa pygletillä komennolla pyglet.shapes.Circle(x = 400, y = 300, radius = 100).

Jatka ensimmäisen tehtävän ohjelmaa.

a) Muuta ohjelmassa ympyrän koodia niin, että radius = 100 tilalla lukeekin radius = 50. Mitä tästä seuraa?

b) Muuta sitten ohjelmassa ympyrän koodia niin, että x = 400 tilalla lukeekin x = 200. Mitä tästä seuraa?

c) Muuta vielä ympyrän koodia niin, että y = 300 tilalla lukeekin y = 500. Mitä tapahtui?


  1. (Haastavampi tehtävä)

Ympyrä on olio, jonka ikkuna piirtää itseensä.

Olioilla on paljon tietoa itsestään. Ympyrä tietää esimerkiksi minkä kokoinen se on, missä kohtaa sen pitäisi ikkunassa sijaita tai vaikkapa minkä värinen se on.

Näitä tietoja voi kertoa ympyrälle kun sen luo, tai niitä voi muuttaa ohjelmassa myöhemmin. Esimerkiksi kun hahmo liikkuu, sen sijainti muuttuu.

Ikkunassa asioiden sijainnit kerrotaan koordinaateilla. Ikkuna on suuri ruudukko ja ympyrä kertoo ikkunalle missä ruudussa se sijaitsee. Yksi ruutu ikkunassa vastaa yhtä pikseliä tietokoneen näytöllä.

Ikkunan leveys kertoo kuinka monta ruutua ikkuna on leveä ja korkeus montako ruutua ikkuna on korkea.

Ympyrällä taas ominaisuus x kertoo monennessako ruudussa ympyrä on sivusuunnassa laskettuna ja y kertoo missä ruudussa se on pystysuunnassa laskettuna.

Ruutujen laskeminen alkaa vasemmasta alakulmasta. ruutu

Ympyrän sijainti on sen keskipisteen sijainti ruudukossa. ympyrä ikkunassa

Jatka edellistä tehtävää.

a) Laita ympyrä sijaitsemaan aivan vasemmassa alakulmassa.

b) Laita ympyrä ruudun keskelle.

c) Laita ympyrä oikean laidan keskelle.

d) Laita ympyrä vasempaan alakulmaan niin, että se on kuitenkin kokonaan näkyvissä.