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