#!/usr/bin/env python3 # Author: Owen Smith - Rewritten from test.pl by Huidae Cho # Run: d.mon start=wx0 && ./test.py | d.text at=0,100 import math import re # Quiet black syntax checking for fonts and colors to keep the code printed to # the display vertically short. # fmt: off fonts = ("cyrilc", "gothgbt", "gothgrt", "gothitt", "greekc", "greekcs", "greekp", "greeks", "italicc", "italiccs", "italict", "romanc", "romancs", "romand", "romans", "romant", "scriptc", "scripts", "cyrilc", "gothgbtlu") colors = ("red", "orange", "yellow", "green", "blue", "indigo", "violet", "black", "gray", "brown", "magenta", "aqua", "grey", "cyan", "purple") # fmt: on def rc(r, c): print(f".X {r}\n.Y {c}") def xy(x, y): print(f".X {x}%\n.Y {y}%") def font(f): print(f".F {f}") def size(s): print(f".S {s}") def color(c): print(f".C {c}") def rotate(r): print(f".R {r}") def align(a): print(f".A {a}") def text(in_text): print(f"{in_text}") for i in range(36): font(fonts[int(i % len(fonts))]) size(((36 - i if (i >= 9 and i <= 18 or i > 27) else i) % 9)) rotate(i * 10) color(colors[i % len(colors)]) xy( (80 + 10 * math.cos(i * 10 / 180 * 3.141593)), (50 + 10 * 640 / 480 * math.sin(i * 10 / 180 * 3.141593)), ) text(fonts[int(i % len(fonts))]) size(2) rotate(0) font("romans") color("gray") rc(1, 1) with open(__file__) as f: src = f.read() print( ".L 0\n" + re.sub( '(".*?")', "\n.C red\n,\\g<0>\n.C gray\n", re.sub("\n", "\n.L 1\n.L 0\n", re.sub("(?m)^#.*\n?", "", src)), ) )