Skip to content

Instantly share code, notes, and snippets.

@Eckankar
Created June 9, 2010 22:05
Show Gist options
  • Save Eckankar/432257 to your computer and use it in GitHub Desktop.
Save Eckankar/432257 to your computer and use it in GitHub Desktop.
knuder = [
(1.797,0.397),
(1.653,0.776),
(1.430,0.883),
(1.004,0.377),
(1.057,0.577),
(1.377,0.703),
(0.790,1.043),
(0.784,0.763),
(2.530,0.730),
(2.744,0.790),
(2.530,0.397),
(2.824,0.610),
(1.624,1.277),
(1.417,1.390),
(1.184,1.510),
(0.824,1.703),
(2.070,1.083),
(2.004,1.757),
(2.351,1.173),
(2.264,1.373),
(2.378,1.313),
(2.658,1.639),
(2.565,2.476),
(2.589,2.278),
(2.114,2.185),
(2.072,2.330),
(2.225,2.258),
(1.938,1.847),
(1.815,1.811),
(1.654,2.015),
(1.759,1.983),
(1.310,2.011),
(1.326,2.658),
(1.219,2.880),
(1.512,2.813),
(2.320,2.991),
(2.314,3.389),
(2.191,3.339),
(1.797,3.941),
(2.644,4.292),
(3.577,4.320),
(4.177,2.696),
(3.852,2.389),
(4.199,1.702),
(2.807,2.300),
(2.774,2.020),
(2.761,1.900),
(2.277,1.837),
(2.230,1.970),
(2.530,1.930),
(2.670,1.790),
(1.633,1.498),
(1.787,1.331),
(1.827,1.431),
(2.557,0.250),
(2.290,0.050),
(2.237,0.437),
(2.084,0.717),
(2.417,0.917),
(2.217,0.917),
(1.552,1.079),
(1.257,1.217),
(1.404,1.277),
(0.937,1.477),
(0.877,1.230),
(0.650,1.677),
(0.157,1.910),
(0.550,2.037),
(1.024,1.763),
(1.197,1.830),
(1.370,1.683),
(1.524,1.750),
(1.524,1.617),
(1.677,1.663),
(1.890,2.317),
(2.072,2.530),
(2.841,3.329),
(0.510,1.423),
(2.037,0.870),
(1.217,2.205)
]
D = 0.2
#!/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
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment