Preskoči na glavno vsebino
Učilnica FRI 25/26
  • Domov
  • Koledar
  • Več
Slovenščina ‎(sl)‎
English ‎(en)‎ Slovenščina ‎(sl)‎ Македонски ‎(mk)‎ Русский ‎(ru)‎ 한국어 ‎(ko)‎
Trenutno uporabljate gostujoči dostop
Prijavite se
Učilnica FRI 25/26
Domov Koledar
Razširi vse Skrči vse
  1. Nadzorna plošča
  2. pef
  3. Želva
  4. Kroženje

Kroženje

Zahteve zaključka
Rok za oddajo: torek, 19. maj 2026, 09.40

Pri tej nalogi morate uporabljati želvo. Zanjo potrebujete želvo in risarja.

Če kdo še ni namestil risarja, naj sledi navodilom za namestitev, pa bo dobil oboje.

Kdor ga je že namestil, naj pobere novo različico, ki vsebuje tudi želvo: v ukazni lupini aktivirajte okolje in napišite pip install risar --upgrade.

Obvezni del

Ves semester se ukvarjamo s sesalci, ki jim je potrebno podati pot. To je seveda iz mode: današnji sesalci samodejno bluzijo po prostoru, dokler ta ni posesan. Nekateri bolj, drugi manj uspešno.

Zadnji model sesalca podjetja Zapušek so videli delati takšne kroge.

Podrobnejši pregled je pokazal, da gre dejansko za kroge, postavljene okrog krožnice, tako:

Gre torej, v bistvu, za n krožnic, ki se "začenjajo" na n točkah enakomerno razporejenih okrog ("navidezne") manjše krožnice. Z drugimi besedami: narišete veliko krožnico, se premaknete za določen kot naprej po manjši notranji krožnici, ponovno narišete veliko krožnico in tako naprej.

Pa sprogramirajte želvo tako, da bo simulirala gibanje tega sesalca in narisala takšne slike.

Neobvezna dodatna naloga

Tak model očitno ne posesa vse sobe. Boljše bi bilo, če bi sesalec opisal Hilbertovo krivuljo, vendar jo je malo sitno sprogramirati, predvsem z želvo.

Pa zato sprogramirajmo preprostjo Zmajevo krivuljo.

  • Zmajeva krivulja nivoja 0 je samo črta dolžine a.
  • Desna zmajeva krivulja nivoja n je sestavljena iz desne zmajeve krivulje nivoja n-1, obrata desno in leve zmajeve krivulje nivoja n-1.
  • Leva zmajeva krivulja nivoja n je sestavljena iz desne zmajeve krivulje nivoja n-1, obrata desno in leve zmajeve krivulje nivoja n-1.

Pazite: obe varianti najprej vsebujeta desno, nato levo krivuljo nivoja n-1. Razlika je le v vmesnem obratu. (Da ne boste po nepotrebnem zapravili 15 minut, kot sem jih jaz. :)

Narišite torej to krivuljo. Priporočam, da napišete funkcijo zmaj(nivo, smer), pri čemer je smer 1 za desno krivuljo in -1 za levo. Potem jo pokličite z

import risar
import zelva
import math

def zmaj(nivo, smer):
    # Tu pride vaša funkcija
    pass

ana = zelva.Turtle()
ana.turn(90)
n = 12
a = 300 / math.sqrt(2) ** n
zmaj(n, 1)
risar.stoj()

ob predpostavki, da zmaj riše z želvo ana.

Trenutno uporabljate gostujoči dostop (Prijavite se)
Pridobi mobilno aplikacijo
Stran poganja Moodle
Obvestilo o avtorskih pravicah