# trimesh.path.simplify¶

Functions:

 `fit_circle_check`(points, scale[, prior, …]) Fit a circle, and reject the fit if: * the radius is larger than tol.radius_min*scale or tol.radius_max*scale * any segment spans more than tol.seg_angle * any segment is longer than tol.seg_frac*scale * the fit deviates by more than tol.radius_frac*radius * the segments on the ends deviate from tangent by more than tol.tangent `fit_nsphere`(points[, prior]) Fit an n-sphere to a set of points using least squares. `is_circle`(points, scale[, verbose]) Given a set of points, quickly determine if they represent a circle or not. `merge_colinear`(points, scale) Given a set of points representing a path in space, merge points which are colinear. `points_to_spline_entity`(points[, smooth, count]) Create a spline entity from a curve in space `resample_spline`(points[, smooth, count, degree]) Resample a path in space, smoothing along a b-spline. `simplify_basic`(drawing[, process]) Merge colinear segments and fit circles. `simplify_spline`(path[, smooth, verbose]) Replace discrete curves with b-spline or Arc and return the result as a new Path2D object.
`trimesh.path.simplify.``fit_circle_check`(points, scale, prior=None, final=False, verbose=False)

Fit a circle, and reject the fit if: * the radius is larger than tol.radius_min*scale or tol.radius_max*scale * any segment spans more than tol.seg_angle * any segment is longer than tol.seg_frac*scale * the fit deviates by more than tol.radius_frac*radius * the segments on the ends deviate from tangent by more than tol.tangent

Parameters
• points ((n, d)) – List of points which represent a path

• prior ((center, radius) tuple) – Best guess or None if unknown

• scale (float) – What is the overall scale of the set of points

• verbose (bool) – Output log.debug messages for the reasons for fit rejection only suggested for manual debugging

Returns

• if fit is acceptable – (center, radius) tuple

• else – None

`trimesh.path.simplify.``is_circle`(points, scale, verbose=False)

Given a set of points, quickly determine if they represent a circle or not.

Parameters
• points ((n,2 ) float) – Points in space

• scale (float) – Scale of overall drawing

• verbose (bool) – Print all fit messages or not

Returns

control – None, if not a circle

Return type

(3,2) float, points in space, OR

`trimesh.path.simplify.``merge_colinear`(points, scale)

Given a set of points representing a path in space, merge points which are colinear.

Parameters
• points ((n, dimension) float) – Points in space

• scale (float) – Scale of drawing for precision

Returns

merged – Points with colinear and duplicate points merged, where (j < n)

Return type

(j, d) float

`trimesh.path.simplify.``points_to_spline_entity`(points, smooth=None, count=None)

Create a spline entity from a curve in space

Parameters
• points ((n, dimension) float) – Points in space

• smooth (float) – Smoothing distance

• count (int or None) – Number of samples desired in result

Returns

• entity (entities.BSpline) – Entity object with points indexed at zero

• control ((m, dimension) float) – New vertices for entity

`trimesh.path.simplify.``resample_spline`(points, smooth=0.001, count=None, degree=3)

Resample a path in space, smoothing along a b-spline.

Parameters
• points ((n, dimension) float) – Points in space

• smooth (float) – Smoothing distance

• count (int or None) – Number of samples desired in output

• degree (int) – Degree of spline polynomial

Returns

resampled – Points in space

Return type

(count, dimension) float

`trimesh.path.simplify.``simplify_basic`(drawing, process=False, **kwargs)

Merge colinear segments and fit circles.

Parameters

drawing (Path2D) – Source geometry, will not be modified

Returns

simplified – Original path but with some closed line-loops converted to circles

Return type

Path2D

`trimesh.path.simplify.``simplify_spline`(path, smooth=None, verbose=False)

Replace discrete curves with b-spline or Arc and return the result as a new Path2D object.

Parameters
Returns

simplified – Consists of Arc and BSpline entities

Return type

Path2D