Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/usr/bin/python
- # vim: set fileencoding=utf8
- from Graf import knuder, D
- import pygame
- from math import ceil, sqrt
- # Skriv turen der skal tegnes og regnes på hér:
- tur = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79]
- ####
- KNUDE_FARVE = (0, 0, 0)
- KNUDE_SIZE = 5
- STI_FARVE = (32, 189, 45)
- STI_TYKKELSE = 3
- D_FARVE = (206, 213, 242)
- TEKST_FARVE = (0, 0, 0)
- #######################
- #######################
- pygame.init()
- window = pygame.display.set_mode((600, 600))
- window.fill((255, 255, 255))
- # Find grænserne for input
- minX = minY = float('infinity')
- maxX = maxY = float('-infinity')
- for k in knuder:
- if k[0] < minX: minX = k[0]
- if k[1] < minY: minY = k[1]
- if k[0] > maxX: maxX = k[0]
- if k[1] > maxY: maxY = k[1]
- minS = min(minX, minY)
- maxS = max(maxX, maxY)
- dS = maxS-minS
- def knude(k): # Flyt knuden over på vores nye koordinatsystem
- (x, y) = knuder[k]
- return (25 + int(550 * (x - minS)/dS), 575 - int(550 * (y - minS)/dS))
- def dist(i, j):
- (x1, y1) = knuder[i]
- (x2, y2) = knuder[j]
- return sqrt((x1-x2)**2 + (y1-y2)**2)
- # Find længden på turen
- length = 0
- for i in range(0, len(tur)):
- length += dist(tur[i], tur[(i + 1)%len(tur)])
- print "Turens længde er", length, "km"
- pygame.display.set_caption('TCP - Esben & Sebastian - dist = ' + str(length) + 'km')
- # Tegn d-dækningen
- d_size = int(ceil(550 * D / dS))
- for i in range(0, len(tur)):
- pygame.draw.circle(window, D_FARVE, knude(tur[i]), d_size)
- # Tegn stierne
- for i in range(0, len(tur)):
- pygame.draw.line(window, STI_FARVE, knude(tur[i]), knude(tur[(i+1)%len(tur)]), STI_TYKKELSE)
- # Tegn knuderne
- for k in range(0, len(knuder)):
- pygame.draw.circle(window, KNUDE_FARVE, knude(k), KNUDE_SIZE)
- # Tegn labels på knuderne
- font = pygame.font.Font(None, 17)
- for k in range(0, len(knuder)):
- label = font.render(str(k), True, TEKST_FARVE)
- labelRect = label.get_rect()
- labelRect.midbottom = knude(k)
- labelRect.bottom -= 4
- window.blit(label, labelRect)
- # Display the screen
- pygame.display.flip()
- # Loop until quit is requested
- stop = False
- while not stop:
- for event in pygame.event.get():
- if event.type == pygame.QUIT:
- stop = True
Add Comment
Please, Sign In to add comment