virtual_knitting_machine.visualizer.visualizer_elements.visualizer_shapes module

Module containing the Visualizer_Shape class and common shapes used in the diagrams.

class Visualizer_Shape(x, y, name, stroke_width, fill='none', stroke=0.7, **shape_kwargs)[source]

Bases: Visualizer_Element

__init__(x, y, name, stroke_width, fill='none', stroke=0.7, **shape_kwargs)[source]
Parameters:
  • x (int) – The x coordinate of the shape.

  • y (int) – The y coordinate of the shape.

  • name (str) – The name-id of the shape.

  • stroke_width (int) – The width of the outline of the shape.

  • fill (str | int, optional) – The fill color of the shape or the factor to lighten the stroke color by. Defaults to no fill color.

  • stroke (str | float, optional) – The color of the outline of the shape or the factor to darken the fill color by. Defaults to darkening the fill color by a factor of 0.7.

  • **shape_kwargs (Any) – Additional keyword arguments to pass to the shape.

add_to_drawing(drawing)

Adds this element to the given svg drawing. :param drawing: The drawing to add. :type drawing: Drawing

static darken_color(color='none', factor=0.7)

Darken a hex or named color.

Parameters:
  • color (str) – The color to darken. Either a named color or a hex representation of the color.

  • factor (float, optional) –

    A factor to darken. Defaults to 0.7.

    • 0.0 = No change.

    • 1.0 = black.

Returns:

The color-string of the darkened color. If “none” color is given, this will return “black”.

Return type:

str

static fill_from_stroke(stroke, lighten_factor=0.3)
Parameters:
  • stroke (str) – The color string of the stroke to be lightened for infill.

  • lighten_factor (float, optional) – The factor to lighten the stroke color by. Defaults to 0.3.

Returns:

The fill color string created by lightening the stroke color.

Return type:

str

property global_x: float

Returns: float: The global x coordinate of this element based on its parent’s coordinates.

global_x_position(x)
Parameters:

x (float) – An X-coordinate position relative to this element’s coordinate system.

Returns:

The x-coordinate adjusted to the global coordinate system.

Return type:

float

property global_y: float

Returns: float: The global y coordinate of this element based on its parent’s coordinates.

global_y_position(y)
Parameters:

y (float) – An Y-coordinate position relative to this element’s coordinate system.

Returns:

The y-coordinate adjusted to the global coordinate system.

Return type:

float

static lighten_color(color='none', factor=0.3)

Lighten a hex or named color.

Parameters:
  • color (str, optional) – The color to lighten. Either a named color or a hex representation of the color. Defaults to transparent (“none”).

  • factor (float, optional) –

    A factor to lighten (0.0 to 1.0). Defaults to 0.3.

    • 0.0 = no change.

    • 1.0 = white.

Returns:

The color-string of the lightened color. If “none” color is given, this will return “black”.

Return type:

str

property name: str

Returns: str: The unique name of this element. This will match the id of the svg element being wrapped.

static stroke_from_fill(fill, darken_factor=0.7)
Parameters:
  • fill (str) – The color string of the fill to be darkened for an outline.

  • darken_factor (float, optional) – The factor to darken the fill color by. Defaults to 0.7.

Returns:

The stroke color string created by darkening the fill color.

Return type:

str

property x: float

Returns: float: The x coordinate of this element relative to its parent (or globally).

property y: float

Returns: float: The y coordinate of this element relative to its parent (or globally).

class Polygon_Element(points, name, stroke_width, orientation=0, fill='none', stroke=0.7, **shape_kwargs)[source]

Bases: Visualizer_Shape

A wrapper for Polygon SVG elements.

__init__(points, name, stroke_width, orientation=0, fill='none', stroke=0.7, **shape_kwargs)[source]
Parameters:
  • points (list[tuple[float, float]]) – The ordered coordinates of the vertices of the polygon element.

  • name (str) – The name-id of the shape.

  • stroke_width (int) – The width of the outline of the shape.

  • orientation (int | tuple[int, int], optional) – If given a tuple, the vertices will be oriented from the given coordinate x, y point (e.g., a center point). If given an integer, the vertices will be oriented from the vertex at that index. Defaults to orienting around the first point in the points list.

  • fill (str | int, optional) – The fill color of the shape or the factor to lighten the stroke color by. Defaults to no fill color.

  • stroke (str | float, optional) – The color of the outline of the shape or the factor to darken the fill color by. Defaults to darkening the fill color by a factor of 0.7.

  • **shape_kwargs (Any) – Additional keyword arguments to pass to the shape.

property x_coordinates: list[float]

Returns: list[float]: The x coordinate values for each vertex in the polygon.

property y_coordinates: list[float]

Returns: list[float]: The y coordinate values for each vertex in the polygon.

property global_points: list[tuple[float, float]]

Returns: list[tuple[float, float]]: The global coordinates of the polygon vertices.

__getitem__(item)[source]
Parameters:

item (int) – The index of the polygon vertice to return.

Returns:

The coordinate of the indexed vertice.

Return type:

tuple[float, float]

Raises:

KeyError – If the index is out of bounds.

__len__()[source]
Returns:

The number of vertices in the polygon.

Return type:

int

add_to_drawing(drawing)

Adds this element to the given svg drawing. :param drawing: The drawing to add. :type drawing: Drawing

static darken_color(color='none', factor=0.7)

Darken a hex or named color.

Parameters:
  • color (str) – The color to darken. Either a named color or a hex representation of the color.

  • factor (float, optional) –

    A factor to darken. Defaults to 0.7.

    • 0.0 = No change.

    • 1.0 = black.

Returns:

The color-string of the darkened color. If “none” color is given, this will return “black”.

Return type:

str

static fill_from_stroke(stroke, lighten_factor=0.3)
Parameters:
  • stroke (str) – The color string of the stroke to be lightened for infill.

  • lighten_factor (float, optional) – The factor to lighten the stroke color by. Defaults to 0.3.

Returns:

The fill color string created by lightening the stroke color.

Return type:

str

property global_x: float

Returns: float: The global x coordinate of this element based on its parent’s coordinates.

global_x_position(x)
Parameters:

x (float) – An X-coordinate position relative to this element’s coordinate system.

Returns:

The x-coordinate adjusted to the global coordinate system.

Return type:

float

property global_y: float

Returns: float: The global y coordinate of this element based on its parent’s coordinates.

global_y_position(y)
Parameters:

y (float) – An Y-coordinate position relative to this element’s coordinate system.

Returns:

The y-coordinate adjusted to the global coordinate system.

Return type:

float

static lighten_color(color='none', factor=0.3)

Lighten a hex or named color.

Parameters:
  • color (str, optional) – The color to lighten. Either a named color or a hex representation of the color. Defaults to transparent (“none”).

  • factor (float, optional) –

    A factor to lighten (0.0 to 1.0). Defaults to 0.3.

    • 0.0 = no change.

    • 1.0 = white.

Returns:

The color-string of the lightened color. If “none” color is given, this will return “black”.

Return type:

str

property name: str

Returns: str: The unique name of this element. This will match the id of the svg element being wrapped.

static stroke_from_fill(fill, darken_factor=0.7)
Parameters:
  • fill (str) – The color string of the fill to be darkened for an outline.

  • darken_factor (float, optional) – The factor to darken the fill color by. Defaults to 0.7.

Returns:

The stroke color string created by darkening the fill color.

Return type:

str

property x: float

Returns: float: The x coordinate of this element relative to its parent (or globally).

property y: float

Returns: float: The y coordinate of this element relative to its parent (or globally).

class Triangle_Element(side_length, x, y, name, stroke_width, fill='none', stroke=0.7, **shape_kwargs)[source]

Bases: Polygon_Element

Wrapper class for equilateral Triangle SVG elements. The triangle points downward and is oriented to its bottom index.

side_length

The length of each side of the equilateral triangle.

Type:

int

__init__(side_length, x, y, name, stroke_width, fill='none', stroke=0.7, **shape_kwargs)[source]

Initialize the Triangle SVG element.

Parameters:
  • side_length (float) – The length of the side of the equilateral triangle.

  • x (float) – The x coordinate of the bottom vertex of the triangle.

  • y (float) – The y coordinate of the top vertex of the triangle.

  • name (str) – The name-id of the shape.

  • stroke_width (int) – The width of the outline of the shape.

  • fill (str | int, optional) – The fill color of the shape or the factor to lighten the stroke color by. Defaults to no fill color.

  • stroke (str | float, optional) – The color of the outline of the shape or the factor to darken the fill color by. Defaults to darkening the fill color by a factor of 0.7.

  • **shape_kwargs (Any) – Additional keyword arguments to pass to the shape.

property height: float

Returns: float: The height of the equilateral triangle.

property top_left_vertex: tuple[float, float]

Returns: tuple[float, float]: The top left vertex of the equilateral triangle pointing downward.

property top_right_vertex: tuple[float, float]

Returns: tuple[float, float]: The top right vertex of the equilateral triangle pointing downward.

property bottom_vertex: tuple[float, float]

Returns: tuple[float, float]: The bottom vertex of the equilateral triangle pointing downward.

__getitem__(item)
Parameters:

item (int) – The index of the polygon vertice to return.

Returns:

The coordinate of the indexed vertice.

Return type:

tuple[float, float]

Raises:

KeyError – If the index is out of bounds.

__len__()
Returns:

The number of vertices in the polygon.

Return type:

int

add_to_drawing(drawing)

Adds this element to the given svg drawing. :param drawing: The drawing to add. :type drawing: Drawing

static darken_color(color='none', factor=0.7)

Darken a hex or named color.

Parameters:
  • color (str) – The color to darken. Either a named color or a hex representation of the color.

  • factor (float, optional) –

    A factor to darken. Defaults to 0.7.

    • 0.0 = No change.

    • 1.0 = black.

Returns:

The color-string of the darkened color. If “none” color is given, this will return “black”.

Return type:

str

static fill_from_stroke(stroke, lighten_factor=0.3)
Parameters:
  • stroke (str) – The color string of the stroke to be lightened for infill.

  • lighten_factor (float, optional) – The factor to lighten the stroke color by. Defaults to 0.3.

Returns:

The fill color string created by lightening the stroke color.

Return type:

str

property global_points: list[tuple[float, float]]

Returns: list[tuple[float, float]]: The global coordinates of the polygon vertices.

property global_x: float

Returns: float: The global x coordinate of this element based on its parent’s coordinates.

global_x_position(x)
Parameters:

x (float) – An X-coordinate position relative to this element’s coordinate system.

Returns:

The x-coordinate adjusted to the global coordinate system.

Return type:

float

property global_y: float

Returns: float: The global y coordinate of this element based on its parent’s coordinates.

global_y_position(y)
Parameters:

y (float) – An Y-coordinate position relative to this element’s coordinate system.

Returns:

The y-coordinate adjusted to the global coordinate system.

Return type:

float

static lighten_color(color='none', factor=0.3)

Lighten a hex or named color.

Parameters:
  • color (str, optional) – The color to lighten. Either a named color or a hex representation of the color. Defaults to transparent (“none”).

  • factor (float, optional) –

    A factor to lighten (0.0 to 1.0). Defaults to 0.3.

    • 0.0 = no change.

    • 1.0 = white.

Returns:

The color-string of the lightened color. If “none” color is given, this will return “black”.

Return type:

str

property name: str

Returns: str: The unique name of this element. This will match the id of the svg element being wrapped.

static stroke_from_fill(fill, darken_factor=0.7)
Parameters:
  • fill (str) – The color string of the fill to be darkened for an outline.

  • darken_factor (float, optional) – The factor to darken the fill color by. Defaults to 0.7.

Returns:

The stroke color string created by darkening the fill color.

Return type:

str

property x: float

Returns: float: The x coordinate of this element relative to its parent (or globally).

property x_coordinates: list[float]

Returns: list[float]: The x coordinate values for each vertex in the polygon.

property y: float

Returns: float: The y coordinate of this element relative to its parent (or globally).

property y_coordinates: list[float]

Returns: list[float]: The y coordinate values for each vertex in the polygon.

class Rect_Element(width, height, x, y, name, stroke_width, fill='none', stroke=0.7, **shape_kwargs)[source]

Bases: Visualizer_Shape

Wrapper class for Rectangle SVG elements.

width

The width of the rectangle.

Type:

float

height

The height of the rectangle.

Type:

float

__init__(width, height, x, y, name, stroke_width, fill='none', stroke=0.7, **shape_kwargs)[source]

Initialize the Rectangle SVG element.

Parameters:
  • width (float) – The width of the rectangle in pixels.

  • height (float) – The height of the rectangle in pixels.

  • x (float) – The x coordinate of the rectangle’s top left corner.

  • y (float) – The y coordinate of the rectangle’s top left corner.

  • name (str) – The name-id of the shape.

  • stroke_width (int) – The width of the outline of the shape.

  • fill (str | int, optional) – The fill color of the shape or the factor to lighten the stroke color by. Defaults to no fill color.

  • stroke (str | float, optional) – The color of the outline of the shape or the factor to darken the fill color by. Defaults to darkening the fill color by a factor of 0.7.

  • **shape_kwargs (Any) – Additional keyword arguments to pass to the shape.

add_to_drawing(drawing)

Adds this element to the given svg drawing. :param drawing: The drawing to add. :type drawing: Drawing

static darken_color(color='none', factor=0.7)

Darken a hex or named color.

Parameters:
  • color (str) – The color to darken. Either a named color or a hex representation of the color.

  • factor (float, optional) –

    A factor to darken. Defaults to 0.7.

    • 0.0 = No change.

    • 1.0 = black.

Returns:

The color-string of the darkened color. If “none” color is given, this will return “black”.

Return type:

str

static fill_from_stroke(stroke, lighten_factor=0.3)
Parameters:
  • stroke (str) – The color string of the stroke to be lightened for infill.

  • lighten_factor (float, optional) – The factor to lighten the stroke color by. Defaults to 0.3.

Returns:

The fill color string created by lightening the stroke color.

Return type:

str

property global_x: float

Returns: float: The global x coordinate of this element based on its parent’s coordinates.

global_x_position(x)
Parameters:

x (float) – An X-coordinate position relative to this element’s coordinate system.

Returns:

The x-coordinate adjusted to the global coordinate system.

Return type:

float

property global_y: float

Returns: float: The global y coordinate of this element based on its parent’s coordinates.

global_y_position(y)
Parameters:

y (float) – An Y-coordinate position relative to this element’s coordinate system.

Returns:

The y-coordinate adjusted to the global coordinate system.

Return type:

float

static lighten_color(color='none', factor=0.3)

Lighten a hex or named color.

Parameters:
  • color (str, optional) – The color to lighten. Either a named color or a hex representation of the color. Defaults to transparent (“none”).

  • factor (float, optional) –

    A factor to lighten (0.0 to 1.0). Defaults to 0.3.

    • 0.0 = no change.

    • 1.0 = white.

Returns:

The color-string of the lightened color. If “none” color is given, this will return “black”.

Return type:

str

property name: str

Returns: str: The unique name of this element. This will match the id of the svg element being wrapped.

static stroke_from_fill(fill, darken_factor=0.7)
Parameters:
  • fill (str) – The color string of the fill to be darkened for an outline.

  • darken_factor (float, optional) – The factor to darken the fill color by. Defaults to 0.7.

Returns:

The stroke color string created by darkening the fill color.

Return type:

str

property x: float

Returns: float: The x coordinate of this element relative to its parent (or globally).

property y: float

Returns: float: The y coordinate of this element relative to its parent (or globally).

class Circle_Element(radius, x, y, name, stroke_width, fill='none', stroke=0.7, **shape_kwargs)[source]

Bases: Visualizer_Shape

Wrapper class for Circle SVG elements.

radius

The radius of the circle.

Type:

int

__init__(radius, x, y, name, stroke_width, fill='none', stroke=0.7, **shape_kwargs)[source]

Initialize the Circle SVG element.

Parameters:
  • radius (int) – The radius of the circle in pixels.

  • x (int) – The x coordinate of the rectangle’s top left corner.

  • y (int) – The y coordinate of the rectangle’s top left corner.

  • name (str) – The name-id of the shape.

  • stroke_width (int) – The width of the outline of the shape.

  • fill (str | int, optional) – The fill color of the shape or the factor to lighten the stroke color by. Defaults to no fill color.

  • stroke (str | float, optional) – The color of the outline of the shape or the factor to darken the fill color by. Defaults to darkening the fill color by a factor of 0.7.

  • **shape_kwargs (Any) – Additional keyword arguments to pass to the shape.

property diameter: float

Returns: float: The diameter of the circle.

add_to_drawing(drawing)

Adds this element to the given svg drawing. :param drawing: The drawing to add. :type drawing: Drawing

static darken_color(color='none', factor=0.7)

Darken a hex or named color.

Parameters:
  • color (str) – The color to darken. Either a named color or a hex representation of the color.

  • factor (float, optional) –

    A factor to darken. Defaults to 0.7.

    • 0.0 = No change.

    • 1.0 = black.

Returns:

The color-string of the darkened color. If “none” color is given, this will return “black”.

Return type:

str

static fill_from_stroke(stroke, lighten_factor=0.3)
Parameters:
  • stroke (str) – The color string of the stroke to be lightened for infill.

  • lighten_factor (float, optional) – The factor to lighten the stroke color by. Defaults to 0.3.

Returns:

The fill color string created by lightening the stroke color.

Return type:

str

property global_x: float

Returns: float: The global x coordinate of this element based on its parent’s coordinates.

global_x_position(x)
Parameters:

x (float) – An X-coordinate position relative to this element’s coordinate system.

Returns:

The x-coordinate adjusted to the global coordinate system.

Return type:

float

property global_y: float

Returns: float: The global y coordinate of this element based on its parent’s coordinates.

global_y_position(y)
Parameters:

y (float) – An Y-coordinate position relative to this element’s coordinate system.

Returns:

The y-coordinate adjusted to the global coordinate system.

Return type:

float

static lighten_color(color='none', factor=0.3)

Lighten a hex or named color.

Parameters:
  • color (str, optional) – The color to lighten. Either a named color or a hex representation of the color. Defaults to transparent (“none”).

  • factor (float, optional) –

    A factor to lighten (0.0 to 1.0). Defaults to 0.3.

    • 0.0 = no change.

    • 1.0 = white.

Returns:

The color-string of the lightened color. If “none” color is given, this will return “black”.

Return type:

str

property name: str

Returns: str: The unique name of this element. This will match the id of the svg element being wrapped.

static stroke_from_fill(fill, darken_factor=0.7)
Parameters:
  • fill (str) – The color string of the fill to be darkened for an outline.

  • darken_factor (float, optional) – The factor to darken the fill color by. Defaults to 0.7.

Returns:

The stroke color string created by darkening the fill color.

Return type:

str

property x: float

Returns: float: The x coordinate of this element relative to its parent (or globally).

property y: float

Returns: float: The y coordinate of this element relative to its parent (or globally).