simetri.graphics

simetri.graphics is a module that provides a simple and intuitive way to create geometric shapes and patterns.

 1"""simetri.graphics is a module that provides a simple and intuitive way to create geometric shapes and patterns."""
 2
 3# status: prototype
 4# This is a proof of concept.
 5# Testing is incomplete.
 6# Everything is subject to change till we release a beta version.
 7
 8__version__ = "0.0.6"
 9__author__ = "Fahri Basegmez"
10
11from math import (
12    cos,
13    sin,
14    pi,
15    atan,
16    atan2,
17    sqrt,
18    degrees,
19    radians,
20    exp,
21    log,
22    log10,
23    e,
24    tau,
25    ceil,
26    floor,
27    trunc,
28    hypot,
29    gcd,
30    factorial,
31    comb,
32    perm,
33    prod,
34)
35from itertools import cycle, combinations, permutations, product
36from random import choice, choices, randint, random, uniform, shuffle
37from functools import lru_cache as memoize
38from numpy import linspace, arange, array, zeros, ones, full, eye, diag
39
40from ..helpers.utilities import *
41from .core import *
42from ..frieze import frieze
43from ..settings.settings import *
44from ..graphics.common import *
45
46
47set_defaults()
48from ..geometry.geometry import *
49from ..geometry.ellipse import *
50from ..geometry.bezier import *
51from ..geometry.hobby import *
52from ..geometry.circle import *
53from ..geometry.sine import *
54from .affine import *
55from .dots import *
56from ..graphics.sketch import *
57from ..canvas.canvas import *
58from ..canvas.grids import *
59from ..helpers.illustration import *
60from ..helpers.constraint_solver import Constraint, solve
61from ..graphics.shapes import *
62from ..helpers.modifiers import *
63from ..lace import Lace
64from ..colors.colors import *
65from ..colors.palettes import *
66from ..colors.swatches import *
67import simetri.colors as colors
68from ..tikz.tikz import *
69from ..helpers.validation import check_version
70from ..stars import stars
71from  ..wallpaper import wallpaper
72from ..graphics.all_enums import *
73from ..extensions.turtle_sg import Turtle, spirolateral
74from ..extensions.l_system import l_system
75from ..extensions.easing import *
76from ..extensions.tree import make_tree, TreeNode
77from .path import LinPath
78from .pattern import *
79from ..image import image as Image
80set_tikz_defaults()
81
82import simetri.canvas.style_map as style_map
83
84def set_alias_maps():
85    style_map._set_shape_style_alias_map()
86    style_map._set_tag_style_alias_map()
87    style_map._set_line_style_alias_map()
88    style_map._set_fill_style_alias_map()
89    style_map._set_marker_style_alias_map()
90    style_map._set_pattern_style_alias_map()
91    style_map._set_frame_style_alias_map()
92    style_map._set_shape_args()
93    style_map._set_batch_args()
94
95
96# if any of the styles is changed, this should be called again!!!
97# set_alias_maps()
def set_alias_maps():
85def set_alias_maps():
86    style_map._set_shape_style_alias_map()
87    style_map._set_tag_style_alias_map()
88    style_map._set_line_style_alias_map()
89    style_map._set_fill_style_alias_map()
90    style_map._set_marker_style_alias_map()
91    style_map._set_pattern_style_alias_map()
92    style_map._set_frame_style_alias_map()
93    style_map._set_shape_args()
94    style_map._set_batch_args()