Прикреплённый файл «drles.py»
Загрузка 1 #!/usr/bin/python
2 # coding: UTF8
3 '''
4 Будем говорить, что для наблюдателя лес является дремучим, если из своего текущего положения наблюдатель видит только деревья. Вам дана карта леса и координаты точки, в которой находится наблюдатель. Требуется определить, кажется ли лес дремучим данному наблюдателю.
5
6 На карте леса все деревья изображаются кругами.
7
8 '''
9
10 import pygame, sys
11 from drlesF import *
12 from drlesG import *
13
14 pygame.init()
15 screen=pygame.display.set_mode((1024,768))
16
17 O=screen.get_rect().center
18
19 Les=[l for l in gen_les(O,166,size=screen.get_rect().size)]
20
21 for C, R in Les:
22 pygame.draw.circle(screen,pygame.Color("peru"),C,R)
23
24 Sheli=[s for s in kasat_les(O,Les)]
25
26 for M,C,R in Sheli:
27 pygame.draw.line(screen, pygame.Color("khaki"),O,M)
28
29 for M,C1,R1 in Sheli:
30 for C, R in Les:
31 if C1 != C or R1 != R:
32 M2=O[0]+(O[1]-C[1]),O[1]-(O[0]-C[0])
33 if (M2[0]-O[0])*(M[1]-O[1])-(M2[1]-O[1])*(M[0]-O[0]) < 0: # Полупрямая
34 if rasst_do_pr(C,O,M)<R: # прямая OM пересекает окружность C,R
35 break
36 else:
37 pygame.draw.line(screen, pygame.Color("green"),O,M,3)
38 break
39 else:
40 S=screen.get_rect().size[0]/20
41 pygame.draw.circle(screen,pygame.Color("black"),O,S)
42 pygame.draw.line(screen,pygame.Color("red"),(O[0]-S,O[1]-S),(O[0]+S,O[1]+S),S/5)
43 pygame.draw.line(screen,pygame.Color("red"),(O[0]-S,O[1]+S),(O[0]+S,O[1]-S),S/5)
44
45 while True:
46 event = pygame.event.wait()
47 if event.type == pygame.QUIT: sys.exit()
48 elif event.type == pygame.KEYUP:
49 if event.key == 27: sys.exit()
50 pygame.display.flip()
Прикреплённые файлы
Для ссылки на прикреплённый файл в тексте страницы напишите attachment:имяфайла, как показано ниже в списке файлов. Не используйте URL из ссылки «[получить]», так как он чисто внутренний и может измениться.- [получить | показать] (2011-09-26 11:35:38, 2.3 KB) [[attachment:bacilly.py]]
- [получить | показать] (2011-09-26 11:35:38, 0.4 KB) [[attachment:draw_circles.py]]
- [получить | показать] (2011-09-26 11:35:38, 1.9 KB) [[attachment:drles.py]]
- [получить | показать] (2011-09-26 11:35:38, 1.2 KB) [[attachment:drlesF.py]]
- [получить | показать] (2011-09-26 11:35:38, 0.3 KB) [[attachment:drlesG.py]]
- [получить | показать] (2011-09-26 11:35:38, 1.8 KB) [[attachment:growing_circles.py]]
Вам нельзя прикреплять файлы к этой странице.