fork(3) download
  1. import sys
  2. import math
  3.  
  4. def distance(x1, y1, x2, y2):
  5. """Returns the distance between two points in a 2D space"""
  6. return math.sqrt(math.pow(x1 - x2, 2) + math.pow(y1 - y2, 2))
  7.  
  8. if len(sys.argv) < 6:
  9. line = sys.stdin.readline()
  10. sys.argv[1:] = line.split(" ")
  11.  
  12. width = int(sys.argv[1])
  13. height = int(sys.argv[2]) * 2 # Y coordinates are double in the internal space
  14. centerX = float(sys.argv[3])
  15. centerY = float(sys.argv[4]) * 2 # Y coordinates are double in the internal space
  16.  
  17. if len(sys.argv) == 7:
  18. radius = float(sys.argv[5])
  19. gradient = sys.argv[6]
  20. elif len(sys.argv) == 6:
  21. radius = max( distance(centerX, centerY, width, height),
  22. distance(centerX, centerY, 0, 0),
  23. distance(centerX, centerY, width, 0),
  24. distance(centerX, centerY, 0, height) )
  25. gradient = sys.argv[5]
  26.  
  27. regionSize = radius / len(gradient)
  28. gradient += ' ' * int( distance(0,0, width, height))
  29.  
  30. for y in xrange(0, height, 2): # We only care about even lines
  31. line = ""
  32. for x in xrange(width):
  33. region = int(distance(centerX, centerY, x , y ) / regionSize)
  34. line += gradient[region]
  35. print line
Success #stdin #stdout 0.02s 7732KB
stdin
75 35 37.5 17.5 "X.X.X"
stdout
 """"""""""XXXXXXXXXXXXXXXX......................XXXXXXXXXXXXXXXX""""""""""
"""""""""XXXXXXXXXXXXX................................XXXXXXXXXXXXX""""""""
"""""""XXXXXXXXXXX........................................XXXXXXXXXXX""""""
"""""XXXXXXXXXXX..................XXXXXXXX..................XXXXXXXXXXX""""
"""XXXXXXXXXX..............XXXXXXXXXXXXXXXXXXXXXX..............XXXXXXXXXX""
""XXXXXXXXX............XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX............XXXXXXXXX"
"XXXXXXXX...........XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX...........XXXXXXXX
XXXXXXXX..........XXXXXXXXXXXXX..............XXXXXXXXXXXXX..........XXXXXXX
XXXXXXX.........XXXXXXXXXXX......................XXXXXXXXXXX.........XXXXXX
XXXXXX........XXXXXXXXXX............................XXXXXXXXXX........XXXXX
XXXXX........XXXXXXXXX................................XXXXXXXXX........XXXX
XXXX........XXXXXXXX...........XXXXXXXXXXXXXX...........XXXXXXXX........XXX
XXX........XXXXXXXX.........XXXXXXXXXXXXXXXXXXXX.........XXXXXXXX........XX
XX........XXXXXXXX........XXXXXXXXXXXXXXXXXXXXXXXX........XXXXXXXX........X
XX........XXXXXXX........XXXXXXXXXXX""""XXXXXXXXXXX........XXXXXXX........X
XX.......XXXXXXXX.......XXXXXXXXX""""""""""XXXXXXXXX.......XXXXXXXX.......X
X........XXXXXXX........XXXXXXX""""""""""""""XXXXXXX........XXXXXXX........
X........XXXXXXX.......XXXXXXXX""""""""""""""XXXXXXXX.......XXXXXXX........
X........XXXXXXX.......XXXXXXXX""""""""""""""XXXXXXXX.......XXXXXXX........
X........XXXXXXX........XXXXXXX""""""""""""""XXXXXXX........XXXXXXX........
XX.......XXXXXXXX.......XXXXXXXXX""""""""""XXXXXXXXX.......XXXXXXXX.......X
XX........XXXXXXX........XXXXXXXXXXX""""XXXXXXXXXXX........XXXXXXX........X
XX........XXXXXXXX........XXXXXXXXXXXXXXXXXXXXXXXX........XXXXXXXX........X
XXX........XXXXXXXX.........XXXXXXXXXXXXXXXXXXXX.........XXXXXXXX........XX
XXXX........XXXXXXXX...........XXXXXXXXXXXXXX...........XXXXXXXX........XXX
XXXXX........XXXXXXXXX................................XXXXXXXXX........XXXX
XXXXXX........XXXXXXXXXX............................XXXXXXXXXX........XXXXX
XXXXXXX.........XXXXXXXXXXX......................XXXXXXXXXXX.........XXXXXX
XXXXXXXX..........XXXXXXXXXXXXX..............XXXXXXXXXXXXX..........XXXXXXX
"XXXXXXXX...........XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX...........XXXXXXXX
""XXXXXXXXX............XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX............XXXXXXXXX"
"""XXXXXXXXXX..............XXXXXXXXXXXXXXXXXXXXXX..............XXXXXXXXXX""
"""""XXXXXXXXXXX..................XXXXXXXX..................XXXXXXXXXXX""""
"""""""XXXXXXXXXXX........................................XXXXXXXXXXX""""""
"""""""""XXXXXXXXXXXXX................................XXXXXXXXXXXXX""""""""