Attachment 'drawer.py'

Download

   1 #!/usr/bin/env python
   2 # -*- coding: UTF-8 -*-
   3 '''
   4   Рисовальщик: программа , котороая читает из файла и отображает 
   5    0. Размер картинки (первая строка файла)
   6       <ширина> <высота>
   7    1. Линии, окружности, прямогуольники с цветом и шириной
   8       color <R,G,B>
   9       width <ширина>
  10       line <начало> <конец>
  11       cicrle <центр> <радиус>
  12       rect <угол1> <угол3>
  13    2. Ломаные и многоугольники (пока не сделано)
  14    3. Фигуры с заливкой  (пока не сделано)
  15 '''
  16 
  17 from math import *
  18 import sys
  19 
  20 import pygame
  21 pygame.init()
  22 
  23 def int1(s):
  24   'Разбить строку на слова, пребразовать все элементы, кроме первого, в целые'
  25   if s.startswith('#'): return s,[]	# комментарий
  26   l=s.split(' ')
  27   return [l[0].lower()]+[int(e) for e in l[1:]]
  28 
  29 # как ввести имя файла?
  30 f = file(sys.argv[1],"r")
  31 fig = [int1(l) for l in f.readlines()]
  32 print fig
  33 W,H = int(fig[0][0]),int(fig[0][1])
  34 width,color = 1, (255,25,255)
  35 screen = pygame.display.set_mode((W,H))
  36 
  37 for l in fig[1:]:
  38   print l
  39   if not l[0] or l[0].startswith('#'):
  40     pass
  41   elif l[0] == 'width': width = l[1]
  42   elif l[0] == 'color': color = l[1:]
  43   elif l[0] == 'line': pygame.draw.line(screen, color, l[1:3], l[3:5], width)
  44   elif l[0] == 'rect': pygame.draw.rect(screen, color, l[1:5], width)
  45   elif l[0] == 'circle': pygame.draw.circle(screen, color, l[1:3], l[3], width)
  46   else: print >> sys.stderr, "Warning: unknown '%s' figure"%l[0]
  47   pygame.display.flip()	# для медленного красивого отображения
  48 
  49 while pygame.event.wait().type != pygame.QUIT:
  50   pass

Attached Files

To refer to attachments on a page, use attachment:filename, as shown below in the list of files. Do NOT use the URL of the [get] link, since this is subject to change and can break easily.

You are not allowed to attach a file to this page.