Guest User

Untitled

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