microstructpy.geometry.Circle

class microstructpy.geometry.Circle(**kwargs)[source]

Bases: microstructpy.geometry.n_sphere.NSphere

A 2D circle.

This class represents a two-dimensional circle. It is defined by a center point and size parameter, which can be either radius or diameter.

Without parameters, this returns a unit circle centered on the origin.

Parameters:
  • r (float) – (optional) The radius of the circle. Defaults to 1.
  • center (list) – (optional) The coordinates of the center. Defaults to (0, 0).
  • diameter(optional) Alias for 2*r.
  • radius(optional) Alias for r.
  • d(optional) Alias for 2*r.
  • size(optional) Alias for 2*r.
  • position(optional) Alias for center.
approximate()

Approximate the n-sphere with itself

Other geometries can be approximated by a set of circles or spheres. For the n-sphere, this approximation is exact.

Returns:A list containing [(x, y, z, …, r)]
Return type:list
classmethod area_expectation(**kwargs)[source]

Expected value of area.

This function computes the expected value for the area of a circle. The keyword arguments are the same as the class parameters. The values can be constants (ints or floats), or a distribution from the SciPy scipy.stats module.

The expected value is computed by the following formula:

\[\mathbb{E}[A] = \pi \mathbb{E}[R^2] = \pi (\mu_R^2 + \sigma_R^2)\]

For example:

>>> from microstructpy.geometry import Circle
>>> Circle.area_expectation(r=1)
3.141592653589793
>>> from scipy.stats import norm
>>> Circle.area_expectation(r=norm(1, 1))
6.283185307179586
Parameters:**kwargs – Keyword arguments, see Circle.
Returns:Expected value of the area of the circle.
Return type:float
classmethod best_fit(points)

Find n-sphere of best fit for set of points.

This function takes a list of points and computes an n-sphere of best fit, in an algebraic sense. This method was developed using the a published writeup, which was extended from 2D to ND. [1]

Parameters:points (list, numpy.ndarray) – List of points to fit.
Returns:An instance of the class that fits the points.
Return type:NSphere
[1]Circle fitting writup by Randy Bullock, https://dtcenter.org/met/users/docs/write_ups/circle_fit.pdf
plot(**kwargs)[source]

Plot the circle.

This function adds a matplotlib.patches.Circle to the current axes. The keyword arguments are passed through to the circle patch.

Parameters:**kwargs (dict) – Keyword arguments for matplotlib.
reflect(points)

Reflect points across surface.

This function reflects a point or set of points across the surface of the n-sphere. Points at the center of the n-sphere are not reflected.

Parameters:points (list or numpy.ndarray) – Points to reflect.
Returns:Reflected points.
Return type:numpy.ndarray
within(points)

Test if points are within n-sphere.

This function tests whether a point or set of points are within the n-sphere. For the set of points, a list of booleans is returned to indicate which points are within the n-sphere.

Parameters:points (list or numpy.ndarray) – Point or list of points.
Returns:Set to True for points in geometry.
Return type:bool or numpy.ndarray
area

area of cirle, \(A=\pi r^2\)

Type:float
bound_max

maximum bounding n-sphere

Type:tuple
bound_min

minimum interior n-sphere

Type:tuple
d

diameter of n-sphere.

Type:float
diameter

diameter of n-sphere.

Type:float
limits

list of (lower, upper) bounds for the bounding box

Type:list
n_dim

number of dimensions, 2

Type:int
position

position of n-sphere.

Type:list
radius

radius of n-sphere.

Type:float
sample_limits

list of (lower, upper) bounds for the sampling region

Type:list
size

size (diameter) of n-sphere.

Type:float
volume

alias for area

Type:float