def naloga8_pomembnost(): from collections import defaultdict oznake = naloga6_povezave(False, True) kraji = TestBase.kraji pov = dvosmerno(povezave(5, kraji)) koord = koordict(kraji) barve = [risar.modra, risar.zelena, risar.rumena, risar.rdeca, risar.rjava] zacetki = [random.choice(kraji)[0] for _ in range(5)] poti = list(zip(*(potnik(zacetek, 1000, pov) for zacetek in zacetki))) krogi = [risar.krog(tx(koord[zacetek][0]), ty(koord[zacetek][1]), 5, sirina=4, barva=barva) for zacetek, barva in zip(zacetki, barve)] obiski = defaultdict(int) for kraji0, kraji1 in zip(poti, poti[1:]): for kraj in kraji0: obiski[kraj] += 1 oznake[kraj].setPlainText(f"{kraj}: {obiski[kraj]}") xy0 = [koord[kraj] for kraj in kraji0] xy1 = [koord[kraj] for kraj in kraji1] for i in [0.1, 0.3, 0.6, 0.9, 1]: for (x0, y0), (x1, y1), krog in zip(xy0, xy1, krogi): krog.setPos(tx(x0 * (1 - i) + x1 * i), ty(y0 * (1 - i) + y1 * i)) risar.cakaj(0.005) risar.stoj()
def naloga6_povezave(eno=True, nestoj=False): risar.obnavljaj = False narisi_povezave(TestBase.kraji, eno) krogi = narisi_kraje(TestBase.kraji) risar.obnavljaj = True if nestoj: return krogi risar.stoj()
def naloga9_razsiri(): oznake = naloga6_povezave(False, True) zacetek = {"Ljubljana", "Lenart", "Žužemberk"} razsirjen = razsiri(zacetek, Test09.povezave5) for kraj, oznaka in oznake.items(): if kraj in zacetek: barva = risar.rumena elif kraj in razsirjen: barva = risar.bela else: barva = risar.barva(48, 48, 48) oznaka.setDefaultTextColor(barva) risar.stoj()
def naloga9_razdalja(): from PyQt5.QtGui import QColor from collections import defaultdict na_razdalji = defaultdict(set) for kraj, _, _ in TestBase.kraji: na_razdalji[razdalja("Vrhnika", kraj, Test09.povezave5)].add(kraj) oznake = naloga6_povezave(False, True) for r, kraji in na_razdalji.items(): barva = QColor.fromHsl(r * 36, 255, 128) for kraj in kraji: oznake[kraj].setDefaultTextColor(barva) oznake[kraj].setPlainText(f"{kraj}: {r}") risar.stoj()
def naloga10_pot(): kraji = TestBase.kraji pov = dvosmerno(povezave(5, kraji)) koord = koordict(kraji) pot = najkrajsa_pot("Škofije", "Lenart", pov) risar.obnavljaj = False narisi_povezave(kraji) for kraj1, kraj2 in zip(pot, pot[1:]): x1, y1 = koord[kraj1] x2, y2 = koord[kraj2] risar.crta(tx(x1), ty(y1), tx(x2), ty(y2), barva=risar.zelena, sirina=3) narisi_kraje(TestBase.kraji) risar.obnavljaj = True risar.obnovi() risar.stoj()
import random import risar from PyQt4 import QtGui besede = ["test", "123", "beseda"] for beseda in besede: risar.besedilo(random.randint(0, 750), random.randint(0, 400), beseda, risar.nakljucna_barva(), velikost= random.randint(30, 80), pisava="Calibri") risar.stoj()
kx.append(randint(-5, 5)) ky.append(sqrt(speed**2 - kx[i]**2)) while True: if risar.levo: mx, my = risar.miska cas = time() if not risar.klik: mx, my = risar.miska miskaKrog.setPos(mx, my) for i in range(len(krogi)): krog = krogi[i] krog.setPos(krog.x() + kx[i], krog.y() + ky[i]) if risar.klik and sqrt((krog.x() - mx)**2 + (krog.y() - my)**2) < 45: risar.stoj() if not (0 < krog.x() < risar.maxX): kx[i] = -kx[i] if not (0 < krog.y() < risar.maxY): ky[i] = -ky[i] if abs(cas - time()) >= 20 and risar.klik: break risar.cakaj(0.02) risar.stoj()
def stop(self): risar.stoj()