typerig.core.func.geometry

typerig.core.func.geometry (version 0.26.2)

# MODULE: TypeRig / Core / Analytic geometry (Functions)
# -----------------------------------------------------------
# (C) Vassil Kateliev, 2015-2020        (http://www.kateliev.com)
# (C) Karandash Type Foundry            (http://www.karandash.eu)
#------------------------------------------------------------
# www.typerig.com

Modules

  • math

Functions

ccw(A, B, C)

Tests whether the turn formed by points A, B, and C is Counter clock wise (CCW)

checkInnerOuter(firstAngle, lastAngle)
Check if connection is inner or outer.
Adapted from RoboFont pens. (NOTE: To be deleted)
checkSmooth(firstAngle, lastAngle, error=4)
Check if connection is smooth within error margin.
Adapted from RoboFont pens. (NOTE: To be deleted)
get_angle(x, y, degrees=True)
Return angle for given X,Y displacement from origin
intersect(A, B, C, D)
Tests whether A,B and C,D intersect
line_angle(p0, p1, degrees=True)
Find angle between two points forming a line
Args: 
        p0, p1 -> tuple(x, y);
        degrees -> bool

Returns:
        radians or degrees
line_intersect(a0, a1, b0, b1)
Find intersection between two lines
Args: 
        a0, a1, b0, b1 -> tuple(x, y); 
Returns:
        intersect node -> tuple(x,y)
line_slope(p0, p1)
Find slope between two points forming a line
Args: 
        p0, p1 -> tuple(x, y)

Returns:
        float or NAN
line_solve_x(p0, p1, y)
Solve line equation for X coordinate by given Y.
line_solve_y(p0, p1, x)
Solve line equation for Y coordinate by given X.
line_y_intercept(p0, p1)
Find Y intercept of line equation for line formed by two points
Args: 
        p0, p1 -> tuple(x, y)

Returns:
        intercept node -> tuple(x,y)
point_in_polygon(point, polygon)
Point in Polygon test
Args: 
        point -> tuple(x, y); 
        polygon -> tuple(tuple(x0, y1)...tuple(xn, yn));

Returns:
        Bool
point_in_triangle(point, triangle)
Point in triangle test
Args: 
        point -> tuple(x, y); 
        triangle -> tuple(tuple(x0, y0), tuple(x1, y1), tuple(x2, y2))

Returns:
        Bool
point_rotate(center, point, angle)
Rotate point around center point with angle (in degrees)
Args: 
        center, point -> tuple(x, y); 
        angle -> float;

Returns:
        new point coordinates -> tuple(x,y)

get_angle

typerig.core.func.geometry.get_angle = get_angle(x, y, degrees=True)
Return angle for given X,Y displacement from origin

ccw

typerig.core.func.geometry.ccw = ccw(A, B, C)
Tests whether the turn formed by points A, B, and C is Counter clock wise (CCW)

intersect

typerig.core.func.geometry.intersect = intersect(A, B, C, D)
Tests whether A,B and C,D intersect

point_in_triangle

typerig.core.func.geometry.point_in_triangle = point_in_triangle(point, triangle)
Point in triangle test
Args: 
        point -> tuple(x, y); 
        triangle -> tuple(tuple(x0, y0), tuple(x1, y1), tuple(x2, y2))

Returns:
        Bool

point_in_polygon

typerig.core.func.geometry.point_in_polygon = point_in_polygon(point, polygon)
Point in Polygon test
Args: 
        point -> tuple(x, y); 
        polygon -> tuple(tuple(x0, y1)...tuple(xn, yn));

Returns:
        Bool

point_rotate

typerig.core.func.geometry.point_rotate = point_rotate(center, point, angle)
Rotate point around center point with angle (in degrees)
Args: 
        center, point -> tuple(x, y); 
        angle -> float;

Returns:
        new point coordinates -> tuple(x,y)

line_slope

typerig.core.func.geometry.line_slope = line_slope(p0, p1)
Find slope between two points forming a line
Args: 
        p0, p1 -> tuple(x, y)

Returns:
        float or NAN

line_angle

typerig.core.func.geometry.line_angle = line_angle(p0, p1, degrees=True)
Find angle between two points forming a line
Args: 
        p0, p1 -> tuple(x, y);
        degrees -> bool

Returns:
        radians or degrees

line_y_intercept

typerig.core.func.geometry.line_y_intercept = line_y_intercept(p0, p1)
Find Y intercept of line equation for line formed by two points
Args: 
        p0, p1 -> tuple(x, y)

Returns:
        intercept node -> tuple(x,y)

line_solve_y

typerig.core.func.geometry.line_solve_y = line_solve_y(p0, p1, x)
Solve line equation for Y coordinate by given X.

line_solve_x

typerig.core.func.geometry.line_solve_x = line_solve_x(p0, p1, y)
Solve line equation for X coordinate by given Y.

line_intersect

typerig.core.func.geometry.line_intersect = line_intersect(a0, a1, b0, b1)
Find intersection between two lines
Args: 
        a0, a1, b0, b1 -> tuple(x, y); 
Returns:
        intersect node -> tuple(x,y)

checkSmooth

typerig.core.func.geometry.checkSmooth = checkSmooth(firstAngle, lastAngle, error=4)
Check if connection is smooth within error margin.
Adapted from RoboFont pens. (NOTE: To be deleted)

checkInnerOuter

typerig.core.func.geometry.checkInnerOuter = checkInnerOuter(firstAngle, lastAngle)
Check if connection is inner or outer.
Adapted from RoboFont pens. (NOTE: To be deleted)