Parabola

class compas.geometry.Parabola[source]

Bases: Conic

A parabola is defined by a plane and a major and minor axis. The origin of the coordinate frame is the center of the parabola.

The parabola in this implementation is based on the equation y = a * x**2. Therefore it will have the y axis of the coordinate frame as its axis of symmetry.

Parameters:
focalfloat

The focal length of the parabola.

framecompas.geometry.Frame

The coordinate frame of the parabola.

namestr, optional

The name of the parabola.

Attributes:
framecompas.geometry.Frame

The coordinate frame of the parabola.

transformationTransformation, read-only

The transformation from the local coordinate system of the parabola (frame) to the world coordinate system.

focalfloat

The focal length of the parabola.

planecompas.geometry.Plane, read-only

The plane of the parabola.

latuscompas.geometry.Point, read-only

The latus rectum of the parabola.

eccentricityfloat, read-only

The eccentricity of a parabola is between 0 and 1.

focuscompas.geometry.Point, read-only

The focus point of the parabola.

directixcompas.geometry.Line, read-only

The directix is the line perpendicular to the y axis of the parabola frame at a distance d = + major / eccentricity from the origin of the parabola frame.

is_closedbool, read-only

False.

is_periodicbool, read-only

False.

Examples

Construct a parabola in the world XY plane.

>>> from compas.geometry import Frame, Parabola
>>> parabola = Parabola(focal=3, frame=Frame.worldXY())
>>> parabola = Parabola(focal=3)

Construct a parabola such that the Z axis of its frame aligns with a given line.

>>> from compas.geometry import Frame, Line, Plane, Parabola
>>> line = Line([0, 0, 0], [1, 1, 1])
>>> plane = Plane(line.end, line.direction)
>>> frame = Frame.from_plane(plane)
>>> parabola = Parabola(focal=3, frame=frame)

Visualize the parabola with the COMPAS viewer.

>>> from compas_viewer import Viewer  
>>> viewer = Viewer()  
>>> viewer.scene.add(line)  
>>> viewer.scene.add(parabola)  
>>> viewer.scene.add(parabola.frame)  
>>> viewer.show()  

Methods

normal_at

Normal at a specific normalized parameter.

point_at

Point at the parameter.

tangent_at

Tangent vector at the parameter.

Inherited Methods

ToString

Converts the instance to a string.

aabb

Compute the axis-aligned bounding box of the curve.

closest_point

Compute the closest point on the curve to a given point.

compute_aabb

Compute the axis-aligned bounding box of the geometry.

compute_obb

Compute the oriented bounding box of the geometry.

copy

Make an independent copy of the data object.

curvature_at

Compute the curvature vector of the curve at a parameter.

divide_by_count

Compute the curve parameters that divide the curve into a specific number of equal length segments.

divide_by_length

Compute the curve parameters that divide the curve into segments of specified length.

fair

frame_at

Compute the local frame of the curve at a parameter.

from_json

Construct an object of this type from a JSON file.

from_jsonstring

Construct an object of this type from a JSON string.

from_native

Construct a parametric curve from a native curve geometry.

from_obj

Load a curve from an OBJ file.

from_step

Load a curve from a STP file.

length

Compute the length of the curve.

offset

reverse

Reverse the parametrisation of the curve.

reversed

Reverse a copy of the curve.

rotate

Rotate the geometry.

rotated

Returns a rotated copy of this geometry.

scale

Scale the geometry.

scaled

Returns a scaled copy of this geometry.

sha256

Compute a hash of the data for comparison during version control using the sha256 algorithm.

smooth

split

to_json

Convert an object to its native data representation and save it to a JSON file.

to_jsonstring

Convert an object to its native data representation and save it to a JSON string.

to_obj

Write the curve geometry to an OBJ file.

to_points

Convert the curve to a list of points.

to_polygon

Convert the curve to a polygon.

to_polyline

Convert the curve to a polyline.

to_step

Write the curve geometry to a STP file.

transform

Transform the local coordinate system of the curve.

transformed

Returns a transformed copy of this geometry.

translate

Translate the geometry.

translated

Returns a translated copy of this geometry.

trim

validate_data

Validate the data against the object's data schema.