fork(15) download
  1. # Entradas
  2. # Ancho de la matriz
  3. # Alto de la matriz
  4. # Ratio (multiplica la altura). Sin especificar es 2
  5. # Centro en x del gradiente
  6. # Centro en y del gradiente
  7. # Radio del gradiente. Sin especificar es distancia max a esquina.
  8. # Cadena de caracteres del gradiente.
  9.  
  10. import sys
  11. import math
  12.  
  13. ancho = 0
  14. while ancho <= 0:
  15. ancho = int(input("Ancho = "))
  16.  
  17. alto = 0
  18. while alto <= 0:
  19. alto = int(input("Alto = "))
  20.  
  21. try:
  22. xyratio = float(input("x:y ratio = "))
  23. except:
  24. xyratio = 2
  25. print("x:y ratio = " + str(xyratio))
  26.  
  27. x_centro = -1
  28. while x_centro < 0:
  29. x_centro = float(input("x center = "))
  30.  
  31. y_centro = -1
  32. while y_centro < 0:
  33. y_centro = float(input("y center = ")) * xyratio
  34.  
  35. radio = 0
  36. try:
  37. radio = float(input("radius: "))
  38. except:
  39. x = x_centro
  40. y = y_centro
  41. xa = ancho - x
  42. ya = (alto * xyratio) - y
  43. distancias = [0] * 4
  44. distancias[0] = math.sqrt(x * x + y * y)
  45. distancias[1] = math.sqrt(xa * xa + y * y)
  46. distancias[2] = math.sqrt(x * x + ya * ya)
  47. distancias[3] = math.sqrt(xa * xa + ya * ya)
  48. radio = max(distancias)
  49. print("radio = " + str(radio))
  50.  
  51. caracteres = ''
  52. while len(caracteres) == 0:
  53. caracteres = str(input("caracteres : "))
  54. print()
  55. chars_len = len(caracteres)
  56. char_distance = radio / chars_len
  57.  
  58. for y in range(alto):
  59. for x in range(ancho):
  60. xd = x + 0.5 - x_centro
  61. yd = ((y + 0.5) * xyratio) - y_centro
  62. distancia = math.sqrt(xd * xd + yd * yd)
  63. char_salida = ' '
  64. if distancia < radio:
  65. char_index = math.floor(distancia / char_distance )
  66. char_salida = caracteres[char_index]
  67. sys.stdout.write(char_salida)
  68. print()
Success #stdin #stdout 0.18s 10224KB
stdin
75
35
2
37.5
17.5

x.x.x
stdout
Ancho = Alto = x:y ratio = x center = y center = radius: radio = 51.29571132170798
chars: xxxxxxxxxxxxxxx.............................................xxxxxxxxxxxxxxx
xxxxxxxxxxxx...................................................xxxxxxxxxxxx
xxxxxxxxxx.....................xxxxxxxxxxxxx.....................xxxxxxxxxx
xxxxxxxx.................xxxxxxxxxxxxxxxxxxxxxxxxx.................xxxxxxxx
xxxxxx...............xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx...............xxxxxx
xxxx..............xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx..............xxxx
xxx.............xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx.............xxx
xx............xxxxxxxxxxxxxxxxxxx.........xxxxxxxxxxxxxxxxxxx............xx
x............xxxxxxxxxxxxxxx...................xxxxxxxxxxxxxxx............x
...........xxxxxxxxxxxxxx.........................xxxxxxxxxxxxxx...........
..........xxxxxxxxxxxxx.............................xxxxxxxxxxxxx..........
.........xxxxxxxxxxxx.................................xxxxxxxxxxxx.........
........xxxxxxxxxxxx...............xxxxx...............xxxxxxxxxxxx........
........xxxxxxxxxxx............xxxxxxxxxxxxx............xxxxxxxxxxx........
.......xxxxxxxxxxx...........xxxxxxxxxxxxxxxxx...........xxxxxxxxxxx.......
.......xxxxxxxxxx...........xxxxxxxxxxxxxxxxxxx...........xxxxxxxxxx.......
.......xxxxxxxxxx..........xxxxxxxxxxxxxxxxxxxxx..........xxxxxxxxxx.......
.......xxxxxxxxxx..........xxxxxxxxxxxxxxxxxxxxx..........xxxxxxxxxx.......
.......xxxxxxxxxx..........xxxxxxxxxxxxxxxxxxxxx..........xxxxxxxxxx.......
.......xxxxxxxxxx...........xxxxxxxxxxxxxxxxxxx...........xxxxxxxxxx.......
.......xxxxxxxxxxx...........xxxxxxxxxxxxxxxxx...........xxxxxxxxxxx.......
........xxxxxxxxxxx............xxxxxxxxxxxxx............xxxxxxxxxxx........
........xxxxxxxxxxxx...............xxxxx...............xxxxxxxxxxxx........
.........xxxxxxxxxxxx.................................xxxxxxxxxxxx.........
..........xxxxxxxxxxxxx.............................xxxxxxxxxxxxx..........
...........xxxxxxxxxxxxxx.........................xxxxxxxxxxxxxx...........
x............xxxxxxxxxxxxxxx...................xxxxxxxxxxxxxxx............x
xx............xxxxxxxxxxxxxxxxxxx.........xxxxxxxxxxxxxxxxxxx............xx
xxx.............xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx.............xxx
xxxx..............xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx..............xxxx
xxxxxx...............xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx...............xxxxxx
xxxxxxxx.................xxxxxxxxxxxxxxxxxxxxxxxxx.................xxxxxxxx
xxxxxxxxxx.....................xxxxxxxxxxxxx.....................xxxxxxxxxx
xxxxxxxxxxxx...................................................xxxxxxxxxxxx
xxxxxxxxxxxxxxx.............................................xxxxxxxxxxxxxxx