first commit :)
This commit is contained in:
commit
1b6648c858
2
asciiWriter/__init__.py
Normal file
2
asciiWriter/__init__.py
Normal file
@ -0,0 +1,2 @@
|
||||
#!/usr/bin/env python3
|
||||
|
BIN
asciiWriter/__pycache__/__init__.cpython-36.pyc
Normal file
BIN
asciiWriter/__pycache__/__init__.cpython-36.pyc
Normal file
Binary file not shown.
BIN
asciiWriter/__pycache__/__init__.cpython-37.pyc
Normal file
BIN
asciiWriter/__pycache__/__init__.cpython-37.pyc
Normal file
Binary file not shown.
BIN
asciiWriter/__pycache__/marks.cpython-36.pyc
Normal file
BIN
asciiWriter/__pycache__/marks.cpython-36.pyc
Normal file
Binary file not shown.
BIN
asciiWriter/__pycache__/marks.cpython-37.pyc
Normal file
BIN
asciiWriter/__pycache__/marks.cpython-37.pyc
Normal file
Binary file not shown.
BIN
asciiWriter/__pycache__/patterns.cpython-36.pyc
Normal file
BIN
asciiWriter/__pycache__/patterns.cpython-36.pyc
Normal file
Binary file not shown.
BIN
asciiWriter/__pycache__/patterns.cpython-37.pyc
Normal file
BIN
asciiWriter/__pycache__/patterns.cpython-37.pyc
Normal file
Binary file not shown.
BIN
asciiWriter/__pycache__/utils.cpython-36.pyc
Normal file
BIN
asciiWriter/__pycache__/utils.cpython-36.pyc
Normal file
Binary file not shown.
BIN
asciiWriter/__pycache__/utils.cpython-37.pyc
Normal file
BIN
asciiWriter/__pycache__/utils.cpython-37.pyc
Normal file
Binary file not shown.
5
asciiWriter/asciiWriter.py
Normal file
5
asciiWriter/asciiWriter.py
Normal file
@ -0,0 +1,5 @@
|
||||
#!/usr/bin/env python3
|
||||
|
||||
import utils
|
||||
import patterns
|
||||
import marks
|
49
asciiWriter/draw.py
Normal file
49
asciiWriter/draw.py
Normal file
@ -0,0 +1,49 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
from utils import make_lines, merge, print_lines, rotate, visit, visit_horizontal
|
||||
from patterns import diagonal, horizontal, vertical, sinus_horizontal, sinus_vertical, image
|
||||
from marks import random_mark, sequence_mark, space
|
||||
from random import choice, random
|
||||
import math
|
||||
|
||||
|
||||
|
||||
|
||||
# marks = ['┼', '│', '░', '▓', 'X', '■', '≡', '·', '¦', ' ']
|
||||
# blank = ' '
|
||||
width = 75
|
||||
height = 50
|
||||
mark = sequence_mark('O.P.E.N D.E.S.I.G.N C.O.U.R.S.E ')
|
||||
|
||||
|
||||
layers = []
|
||||
|
||||
# layers.append(visit(make_lines(width, height), image('blobs-small.png'), mark, space(' ')))
|
||||
|
||||
for offset in range(-50, 50, 15):
|
||||
lines = [[] for l in range(height)]
|
||||
sinus = sinus_vertical(period=50, amplitude=25, offset=offset, offset_t=random())
|
||||
layers.append(visit(make_lines(width, height), sinus, sequence_mark(' K A S K G E N T '), space()))
|
||||
|
||||
for offset in range(-43, 57, 15):
|
||||
lines = [[] for l in range(height)]
|
||||
sinus = sinus_vertical(period=40, amplitude=10, offset=offset, offset_t=.5+random())
|
||||
layers.append(visit(make_lines(width, height), sinus, mark, space()))
|
||||
|
||||
print_lines(merge(width, height, space()(), layers))
|
||||
|
||||
# for line in overlay(50, 50, ' ', [rotate(merged), merged]):
|
||||
# stdout.write('{}\n'.format(''.join(line)))
|
||||
|
||||
# sinus = sinus_horizontal(period=30, amplitude=8)
|
||||
# for x in range(width):
|
||||
# for y in range(height):
|
||||
# lines[y].append(sinus(x, y, width, height, mark, space()))
|
||||
|
||||
# for line in lines:
|
||||
# stdout.write('{}\n'.format(''.join(line)))
|
||||
|
||||
# lines = [[draw(x, y, marks) for x in range(width)] for y in range(height)]
|
||||
|
||||
# sys.sdout.write('\n'.join([''.join(line) for line in lines]))
|
||||
|
||||
# sys.sdout.write('\n'.join([''.join([draw(x, y, marks) for x in range(width)]) for y in range(height)]))
|
24
asciiWriter/marks.py
Normal file
24
asciiWriter/marks.py
Normal file
@ -0,0 +1,24 @@
|
||||
from random import choice
|
||||
|
||||
def random (marks=['']):
|
||||
def func ():
|
||||
return choice(marks)
|
||||
|
||||
return func
|
||||
|
||||
def sentence (text):
|
||||
chars = list(text)
|
||||
def f():
|
||||
char = chars.pop(0)
|
||||
chars.append(char)
|
||||
return char
|
||||
return f
|
||||
|
||||
def single (char):
|
||||
def f():
|
||||
return char
|
||||
|
||||
return f
|
||||
|
||||
def space (space=' '):
|
||||
return single(space)
|
67
asciiWriter/patterns.py
Normal file
67
asciiWriter/patterns.py
Normal file
@ -0,0 +1,67 @@
|
||||
import math
|
||||
|
||||
# # Linear
|
||||
def diagonal():
|
||||
def f (x, y, width, height, mark, blank):
|
||||
if x == math.floor((y / float(height)) * width):
|
||||
return mark()
|
||||
else:
|
||||
return blank()
|
||||
|
||||
return f
|
||||
|
||||
# Cross
|
||||
def cross ():
|
||||
def f (x, y, width, height, mark, blank):
|
||||
pos = math.floor((y / float(height)) * width)
|
||||
|
||||
if x == pos or (width - 1) - pos == x:
|
||||
return mark()
|
||||
else:
|
||||
return blank()
|
||||
return f
|
||||
|
||||
def horizontal (position):
|
||||
def f (x, y, width, height, mark, blank):
|
||||
return mark() if position == y else blank()
|
||||
return f
|
||||
|
||||
def vertical (position):
|
||||
def f (x, y, width, height, mark, blank):
|
||||
return mark() if position == x else blank()
|
||||
return f
|
||||
|
||||
# Sinus
|
||||
def sinus_vertical (period=0.2, amplitude=0.5, offset_t=0, offset=0):
|
||||
period = (period / (math.pi * 2))
|
||||
|
||||
def f (x, y, width, height, mark, blank):
|
||||
middle = (width - 1) * .5
|
||||
to_mark = math.floor(middle + math.sin(offset_t + y / period) * amplitude)
|
||||
return mark() if (x + offset) == to_mark else blank()
|
||||
return f
|
||||
|
||||
def sinus_horizontal (period=0.2, amplitude=0.5, offset_t=0, offset=0):
|
||||
period = (period / (math.pi * 2))
|
||||
def f (x, y, width, height, mark, blank):
|
||||
middle = (height - 1) * .5
|
||||
to_mark = math.floor(middle + math.sin(offset_t + x / period) * amplitude)
|
||||
return mark() if y + offset == to_mark else blank()
|
||||
|
||||
return f
|
||||
|
||||
def image (path, threshold=128):
|
||||
from PIL import Image
|
||||
|
||||
im = Image.open(path).convert('L')
|
||||
image_width, image_height = im.size
|
||||
pixels = im.load()
|
||||
|
||||
def f (x, y, width, height, mark, blank):
|
||||
if x < image_width and y < image_height:
|
||||
if pixels[x, y] < threshold:
|
||||
return mark()
|
||||
|
||||
return blank()
|
||||
|
||||
return f
|
52
asciiWriter/utils.py
Normal file
52
asciiWriter/utils.py
Normal file
@ -0,0 +1,52 @@
|
||||
from sys import stdout
|
||||
|
||||
def rotate(layer):
|
||||
new_width = len(layer)
|
||||
new_height = len(layer[0])
|
||||
rotated = [['' for x in range(new_width)] for l in range(new_height)]
|
||||
|
||||
for y in range(len(layer)):
|
||||
for x in range(len(layer[y])):
|
||||
rotated[x][y] = layer[y][x]
|
||||
|
||||
return rotated
|
||||
|
||||
def merge(width, height, space_char, layers):
|
||||
output = [[space_char for x in range(width)] for y in range(height)]
|
||||
|
||||
for layer in layers:
|
||||
for y in range(height):
|
||||
for x in range(width):
|
||||
if layer[y][x] != space_char:
|
||||
output[y][x] = layer[y][x]
|
||||
|
||||
return output
|
||||
|
||||
# Make a multidimensional array
|
||||
# with the given dimensions
|
||||
def make_lines (width, height, fill_char = ''):
|
||||
return [[ fill_char for _ in range(width) ] for __ in range(height)]
|
||||
|
||||
def visit (lines, callback, mark, blank):
|
||||
height = len(lines)
|
||||
width = len(lines[0])
|
||||
|
||||
for y in range(height):
|
||||
for x in range(width):
|
||||
lines[y][x] = callback(x, y, width, height, mark, blank)
|
||||
|
||||
return lines
|
||||
|
||||
def visit_horizontal (lines, callback, mark, blank):
|
||||
height = len(lines)
|
||||
width = len(lines[0])
|
||||
|
||||
for x in range(width):
|
||||
for y in range(height):
|
||||
lines[y][x] = callback(x, y, width, height, mark, blank)
|
||||
|
||||
return lines
|
||||
|
||||
def print_lines (lines):
|
||||
for line in lines:
|
||||
stdout.write('{}\n'.format(''.join(line)))
|
30
image.py
Normal file
30
image.py
Normal file
@ -0,0 +1,30 @@
|
||||
#!/usr/bin/env python3
|
||||
|
||||
"""
|
||||
Uses an image as a guide to draw either blanks or
|
||||
mark chars. In this case with the char '+'.
|
||||
"""
|
||||
|
||||
from asciiWriter.patterns import image
|
||||
from asciiWriter.utils import make_lines, visit, print_lines
|
||||
from asciiWriter.marks import single, space
|
||||
|
||||
width = 75
|
||||
height = 75
|
||||
|
||||
# Where to find the image
|
||||
image_path = 'images/blobs-small.png'
|
||||
# Construct the pattern
|
||||
image_pattern = image(image_path)
|
||||
# Set the marker, in this case the character '+'
|
||||
mark = single('+')
|
||||
# Define what to use on a blank space, as a variation you could use: single('*')
|
||||
blank = space()
|
||||
|
||||
# Make a canvas
|
||||
lines = make_lines(width, height)
|
||||
# Draw the picture
|
||||
result = visit(lines, image_pattern, mark, blank)
|
||||
|
||||
# Print the result
|
||||
print_lines(result)
|
26
image_random_char.py
Normal file
26
image_random_char.py
Normal file
@ -0,0 +1,26 @@
|
||||
#!/usr/bin/env python3
|
||||
|
||||
from asciiWriter.patterns import image
|
||||
from asciiWriter.utils import make_lines, visit, print_lines
|
||||
from asciiWriter.marks import random, single
|
||||
|
||||
width = 75
|
||||
height = 75
|
||||
|
||||
# Where to find the image
|
||||
image_path = 'images/blobs-small.png'
|
||||
# Construct the pattern
|
||||
image_pattern = image(image_path)
|
||||
# Set the marker, in this case it makes a random selection from
|
||||
# the list: +, *, $, #, ,
|
||||
mark = random(['+', '*', '$', '#', ' ', ' '])
|
||||
# Define what to use on a blank space, as a variation you coul use: single('*')
|
||||
blank = single()
|
||||
|
||||
# Make a canvas
|
||||
lines = make_lines(width, height)
|
||||
# Draw the picture
|
||||
result = visit(lines, image_pattern, mark, blank)
|
||||
|
||||
# Print the result
|
||||
print_lines(result)
|
32
image_rotate.py
Normal file
32
image_rotate.py
Normal file
@ -0,0 +1,32 @@
|
||||
#!/usr/bin/env python3
|
||||
|
||||
"""
|
||||
Same as image_sentence.py, but rotates the result.
|
||||
Uses an image to define where to put chars.
|
||||
In this case with the sentence/word ASCII
|
||||
"""
|
||||
|
||||
from asciiWriter.patterns import image
|
||||
from asciiWriter.utils import make_lines, visit, print_lines, rotate
|
||||
from asciiWriter.marks import sentence, single
|
||||
|
||||
width = 75
|
||||
height = 75
|
||||
|
||||
# Where to find the image
|
||||
image_path = 'images/blobs-small.png'
|
||||
# Construct the pattern
|
||||
image_pattern = image(image_path)
|
||||
# Set the marker, in this case a sentence
|
||||
mark = sentence('ASCII ')
|
||||
# Define what to use on a blank space, as a variation you coul use: single('*')
|
||||
blank = single(' ')
|
||||
|
||||
# Make a canvas
|
||||
lines = make_lines(width, height)
|
||||
# Draw the picture
|
||||
result = visit(lines, image_pattern, mark, blank)
|
||||
# Rotate the canvas
|
||||
result = rotate(result)
|
||||
# Print the result
|
||||
print_lines(result)
|
31
image_sentence.py
Normal file
31
image_sentence.py
Normal file
@ -0,0 +1,31 @@
|
||||
#!/usr/bin/env python3
|
||||
|
||||
"""
|
||||
Uses an image to define where to put chars.
|
||||
In this case with the sentence/word ASCII
|
||||
"""
|
||||
|
||||
from asciiWriter.patterns import image
|
||||
from asciiWriter.utils import make_lines, visit, print_lines
|
||||
from asciiWriter.marks import sentence, space
|
||||
|
||||
width = 75
|
||||
height = 75
|
||||
|
||||
# Where to find the image
|
||||
image_path = 'images/blobs-small.png'
|
||||
image_path = 'images/shapes.png'
|
||||
# Construct the pattern
|
||||
image_pattern = image(image_path)
|
||||
# Set the marker, in this case a sentence
|
||||
mark = sentence('U.R.S O.P.E.N. D.E.S.I.G.N C.O.')
|
||||
# Define what to use on a blank space, as a variation you coul use: single('*')
|
||||
blank = space()
|
||||
|
||||
# Make a canvas
|
||||
lines = make_lines(width, height)
|
||||
# Draw the picture
|
||||
result = visit(lines, image_pattern, mark, blank)
|
||||
|
||||
# Print the result
|
||||
print_lines(result)
|
BIN
images/blobs-small.png
Normal file
BIN
images/blobs-small.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 3.2 KiB |
BIN
images/blobs.png
Normal file
BIN
images/blobs.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 9.7 KiB |
BIN
images/shapes.png
Normal file
BIN
images/shapes.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 1.6 KiB |
28
line.py
Normal file
28
line.py
Normal file
@ -0,0 +1,28 @@
|
||||
#!/usr/bin/env python3
|
||||
|
||||
"""
|
||||
Draws a single, vertical line
|
||||
"""
|
||||
|
||||
from asciiWriter.patterns import vertical
|
||||
from asciiWriter.utils import make_lines, visit, print_lines
|
||||
from asciiWriter.marks import sentence, space
|
||||
|
||||
# Set the canvas
|
||||
width = 75
|
||||
height = 75
|
||||
|
||||
# Define the line, most importantly it's position
|
||||
pattern = vertical(20)
|
||||
# We're going to fill the line with a text
|
||||
mark = sentence('OPEN DESIGN COURSE ')
|
||||
# Set the character for the 'blank' space
|
||||
blank = space()
|
||||
|
||||
# Make a canvas
|
||||
lines = make_lines(width, height)
|
||||
# Draw the result
|
||||
result = visit(lines, pattern, mark, blank)
|
||||
|
||||
# Print the result
|
||||
print_lines(result)
|
30
line_random_char.py
Normal file
30
line_random_char.py
Normal file
@ -0,0 +1,30 @@
|
||||
#!/usr/bin/env python3
|
||||
|
||||
"""
|
||||
Draws a single just like line.py but does so
|
||||
using a 'random' character
|
||||
"""
|
||||
|
||||
from asciiWriter.patterns import vertical
|
||||
from asciiWriter.utils import make_lines, visit, print_lines
|
||||
from asciiWriter.marks import random, space
|
||||
|
||||
# Set the canvas
|
||||
width = 75
|
||||
height = 75
|
||||
|
||||
# Define the line, most importantly it's position
|
||||
image_pattern = vertical(20)
|
||||
# We're going to fill the line with random selections
|
||||
# from the '%$&@!*' chars
|
||||
mark = random('%$&@!*')
|
||||
# Set the character for the 'blank' space
|
||||
blank = space()
|
||||
|
||||
# Make a canvas
|
||||
lines = make_lines(width, height)
|
||||
# Draw the result
|
||||
result = visit(lines, image_pattern, mark, blank)
|
||||
|
||||
# Print the result
|
||||
print_lines(result)
|
61
readme.md
Normal file
61
readme.md
Normal file
@ -0,0 +1,61 @@
|
||||
# ASCII-ART-BUT-WITH-UNICODE
|
||||
|
||||
<pre>
|
||||
---------H---------H---------H---------H---------H---------H---------H---------H---------H---------H
|
||||
-------------------e------e-------e------e-------e-------e------e-------e------e-------e------------
|
||||
----------------------------l----l-----l----l----l----l----l-----l----l----l------------------------
|
||||
------------------------------------l---l--l--l--l--l--l--l---l--l----------------------------------
|
||||
-------------------------------------------oo-oo-o-oo-oo-o------------------------------------------
|
||||
----------------------------------------------- ------------------------------------------------
|
||||
-------------------------------------------------W--------------------------------------------------
|
||||
------------------------------------------------ooo-------------------------------------------------
|
||||
---------------------------------------------rrrrrrrrrr---------------------------------------------
|
||||
----------------------------------------l-l-l--l-l-l--l-l-l-l---------------------------------------
|
||||
---------------------------------d---d---d---d---d---d---d---d---d----d-----------------------------
|
||||
------------------------!-----!-----!------!-----!-----!------!-----!-----!------!------------------
|
||||
-------------- -------- -------- ------- -------- -------- ------- -------- -------- -------- ------
|
||||
----H----------H----------H-----------H----------H----------H-----------H----------H----------H-----
|
||||
--------e-------------e------------e-------------e-------------e------------e-------------e---------
|
||||
-l---------------l---------------l---------------l---------------l---------------l---------------l--
|
||||
--------------l----------------l-----------------l-----------------l----------------l---------------
|
||||
-----------o------------------o------------------o------------------o------------------o------------
|
||||
--------- ------------------- ------------------- ------------------- ------------------- ----------
|
||||
---------W-------------------W-------------------W-------------------W-------------------W----------
|
||||
----------o------------------o-------------------o-------------------o------------------o-----------
|
||||
------------r------------------r-----------------r-----------------r------------------r-------------
|
||||
---------------l----------------l----------------l----------------l----------------l----------------
|
||||
-----l-------------d--------------d--------------d--------------d--------------d-------------l------
|
||||
------------o-----------!------------!-----------!-----------!------------!-----------o------------e
|
||||
---------e--------- --------- --------- --------- --------- --------- --------- ---------l---------H
|
||||
-------------------l------W-------H------H-------H-------H------H-------W------l-------e------------
|
||||
----------------------------l----o-----e----e----e----e----e-----o----o----l------------------------
|
||||
------------------------------------o---r--l--l--l--l--l--r--- --l----------------------------------
|
||||
------------------------------------------- l-ll-l-ll-lW-o------------------------------------------
|
||||
-----------------------------------------------Wdooo------------------------------------------------
|
||||
-------------------------------------------------o--------------------------------------------------
|
||||
------------------------------------------------rW -------------------------------------------------
|
||||
---------------------------------------------lHoooooHdr---------------------------------------------
|
||||
----------------------------------------d-e-r--r-r-r--r-e-!-l---------------------------------------
|
||||
---------------------------------!---l---l---l---l---l---l---l--- ----d-----------------------------
|
||||
------------------------ -----l-----d------d-----d-----d------d-----l-----H------!------------------
|
||||
--------------H--------o--------!-------!--------!--------!-------!--------o--------e-------- ------
|
||||
----e---------- ---------- ----------- ---------- ---------- ----------- ---------- ----------l-----
|
||||
--------W-------------H------------H-------------H-------------H------------H-------------W---------
|
||||
-o---------------e---------------e---------------e---------------e---------------e---------------o--
|
||||
--------------l----------------l-----------------l-----------------l----------------l---------------
|
||||
-----------l------------------l------------------l------------------l------------------l------------
|
||||
---------o-------------------o-------------------o-------------------o-------------------o----------
|
||||
--------- ------------------- ------------------- ------------------- ------------------- ----------
|
||||
----------W------------------W-------------------W-------------------W------------------W-----------
|
||||
------------o------------------o-----------------o-----------------o------------------o-------------
|
||||
---------------r----------------r----------------r----------------r----------------r----------------
|
||||
-----r-------------l--------------l--------------l--------------l--------------l-------------r------
|
||||
------------l-----------d------------d-----------d-----------d------------d-----------l------------l
|
||||
</pre>
|
||||
|
||||
Work in progress :)
|
||||
|
||||
# Requirements
|
||||
|
||||
* pillow
|
||||
|
39
repeated_line.py
Normal file
39
repeated_line.py
Normal file
@ -0,0 +1,39 @@
|
||||
#!/usr/bin/env python3
|
||||
|
||||
"""
|
||||
Draws lines like line.py, but draws more than one
|
||||
"""
|
||||
|
||||
from asciiWriter.patterns import vertical
|
||||
from asciiWriter.utils import make_lines, visit, print_lines, merge
|
||||
from asciiWriter.marks import sentence, space
|
||||
|
||||
# Set the canvas
|
||||
width = 75
|
||||
height = 75
|
||||
|
||||
# We are going to draw multiple lines and collect them
|
||||
# in a list named 'layers'
|
||||
layers = []
|
||||
|
||||
# Set the position of the line, do this in a loop
|
||||
# from 10 to 75 in steps of then
|
||||
for x in range(10, 75, 10):
|
||||
# Define the line, x will start at 10 and grow in steps of 10
|
||||
image_pattern = vertical(x)
|
||||
# Fill the line with the sentence 'OPEN DESIGN COURSE '
|
||||
mark = sentence('OPEN DESIGN COURSE ')
|
||||
# Set the blank space
|
||||
blank = space()
|
||||
|
||||
# Make a canvas
|
||||
lines = make_lines(width, height)
|
||||
# Make a layer with the line
|
||||
layer = visit(lines, image_pattern, mark, blank)
|
||||
# Add the layer to the list of layers
|
||||
layers.append(layer)
|
||||
|
||||
# Merge the list of layers into a single layer
|
||||
result = merge(width, height, blank(), layers)
|
||||
# Print the result
|
||||
print_lines(result)
|
36
repeated_sinus.py
Normal file
36
repeated_sinus.py
Normal file
@ -0,0 +1,36 @@
|
||||
#!/usr/bin/env python3
|
||||
|
||||
from asciiWriter.patterns import sinus_vertical
|
||||
from asciiWriter.utils import make_lines, visit, print_lines, merge
|
||||
from asciiWriter.marks import sentence, space
|
||||
|
||||
# Define width and height of the output
|
||||
width = 75
|
||||
height = 75
|
||||
|
||||
# As we draw multiple sinoids we will collect
|
||||
# them in a list of layers
|
||||
layers = []
|
||||
|
||||
# Loop through an offset from -40 to 40 in steps of 10
|
||||
for x in range(-40, 40, 10):
|
||||
# Set the pattern with the changing offset
|
||||
pattern = sinus_vertical(period=40, amplitude=30, offset=x)
|
||||
# We use a sentence to draw the text
|
||||
mark = sentence('OPEN DESIGN COURSE ')
|
||||
# Define a blank character
|
||||
blank = space()
|
||||
|
||||
# Make the canvas
|
||||
lines = make_lines(width, height)
|
||||
|
||||
# Draw the sinoid, but add it to the list
|
||||
result = visit(lines, pattern, mark, blank)
|
||||
# Add it the result to the list of layers
|
||||
layers.append(result)
|
||||
|
||||
# Merge the layers into one layer again
|
||||
merged = merge(width, height, blank(), layers)
|
||||
|
||||
# Print the result
|
||||
print_lines(merged)
|
37
repeated_sinus_amplitude_variation.py
Normal file
37
repeated_sinus_amplitude_variation.py
Normal file
@ -0,0 +1,37 @@
|
||||
#!/usr/bin/env python3
|
||||
|
||||
from asciiWriter.patterns import sinus_vertical
|
||||
from asciiWriter.utils import make_lines, visit, print_lines, merge
|
||||
from asciiWriter.marks import sentence, space
|
||||
|
||||
import random
|
||||
|
||||
# Define width and height of the output
|
||||
width = 75
|
||||
height = 75
|
||||
|
||||
# As we draw multiple sinoids we will collect
|
||||
# them in a list of layers
|
||||
layers = []
|
||||
|
||||
# Loop through an amplitude of -50 to 50 in steps of 10
|
||||
for amplitude in range(-50, 50, 10):
|
||||
# Set the pattern with the changing amplitude
|
||||
pattern = sinus_vertical(period=40, amplitude=amplitude)
|
||||
# We use a sentence to draw the text
|
||||
mark = sentence('OPEN DESIGN COURSE ')
|
||||
# Define a blank character
|
||||
blank = space()
|
||||
|
||||
# Make the canvas
|
||||
lines = make_lines(width, height)
|
||||
# Draw the sinoid, but add it to the list
|
||||
result = visit(lines, pattern, mark, blank)
|
||||
# Add it the result to the list of layers
|
||||
layers.append(result)
|
||||
|
||||
# Merge the layers into one layer again
|
||||
merged = merge(width, height, blank(), layers)
|
||||
|
||||
# Print the result
|
||||
print_lines(merged)
|
27
sinus.py
Normal file
27
sinus.py
Normal file
@ -0,0 +1,27 @@
|
||||
#!/usr/bin/env python3
|
||||
|
||||
from asciiWriter.patterns import sinus_vertical
|
||||
from asciiWriter.utils import make_lines, visit, print_lines
|
||||
from asciiWriter.marks import sentence, space, single
|
||||
|
||||
# Define width and height of the output
|
||||
width = 75
|
||||
height = 75
|
||||
|
||||
# Set the pattern we use to draw, in this case a
|
||||
# sinoid, with period of 40 lines, and an amplitude
|
||||
# of 30 characters. Slightly less than half our canvas width
|
||||
pattern = sinus_vertical(period=40, amplitude=30)
|
||||
# We use a sentence to draw the text
|
||||
mark = sentence('OPEN DESIGN COURSE ')
|
||||
# Define a blank character
|
||||
blank = single(' ')
|
||||
|
||||
# Make the canvas
|
||||
lines = make_lines(width, height)
|
||||
|
||||
# Draw the sinoid
|
||||
result = visit(lines, pattern, mark, blank)
|
||||
|
||||
# Output the result
|
||||
print_lines(result)
|
37
test.py
Normal file
37
test.py
Normal file
@ -0,0 +1,37 @@
|
||||
#!/usr/bin/env python3
|
||||
|
||||
from asciiWriter.patterns import sinus_vertical, cross
|
||||
from asciiWriter.utils import make_lines, visit, print_lines, merge
|
||||
from asciiWriter.marks import sentence, space, single
|
||||
|
||||
# Define width and height of the output
|
||||
width = 100
|
||||
height = 50
|
||||
|
||||
# As we draw multiple sinoids we will collect
|
||||
# them in a list of layers
|
||||
layers = []
|
||||
|
||||
# Loop through an offset from -40 to 40 in steps of 10
|
||||
for x in range(-50, 50, 10):
|
||||
|
||||
# Set the pattern with the changing offset
|
||||
pattern = cross()
|
||||
# We use a sentence to draw the text
|
||||
mark = sentence('Hello World! ')
|
||||
# Define a blank character
|
||||
blank = single('-')
|
||||
|
||||
# Make the canvas
|
||||
lines = make_lines(width, height)
|
||||
|
||||
# Draw the sinoid, but add it to the list
|
||||
result = visit(lines, pattern, mark, blank)
|
||||
# Add it the result to the list of layers
|
||||
layers.append(result)
|
||||
|
||||
# Merge the layers into one layer again
|
||||
merged = merge(width, height, blank(), layers)
|
||||
|
||||
# Print the result
|
||||
print_lines(merged)
|
Loading…
Reference in New Issue
Block a user