Geometry¶
In the file geometry.py are contained several classes to create shapes and other objects. This is a list of commonly used classes. The most useful constructor parameters are listed under the description of the classes. However, these lists are not exhaustive and for example many objects can be passed the following arguments :
- color :
- color to draw and fill the object with
- fill_opacity : float (between 0 and 1)
- the object is filled with the given opacity
Arc¶
Represents an arc. Inherits from TipableVMobject.
Parameters :
- radius : float, optional, default: 1.0
- distance from arc_center to the arc
- arc_center : numpy array of dimension 3, optional, default: ORIGIN
- point to which all points in the arc are equidistants
- start_angle : float (in radians), optional, default: 0
- the angle at which to start the arc
- angle : float (in radians), optional, default: TAU/4 (equal to PI/2)
- total angle between the point in start angle and the last point in the arc, measured from the arc_center
ArcBetweenPoints¶
Represents an arc between two points. Inherits from Arc. The arc center is computed as being on the left side of the perpendicular of the line from start to end.
Parameters :
- start : numpy array of dimension 3
- start point
- end : numpy array of dimension 3
- end point
- angle : float (in radians), optional, default: TAU/4 (equal to PI/2)
- total angle between the start point and the end point, measured from the arc_center
CurvedArrow¶
Represents a curved arrow between two points. Inherits from ArcBetweenPoints. Behaviour very close from its parent class.
Parameters :
- start_point : numpy array of dimension 3
- start point
- end_point : numpy array of dimension 3
- end point
- angle : float (in radians), optional, default: TAU/4 (equal to PI/2)
- total angle between the start point and the end point, measured from the arc_center
CurvedDoubleArrow¶
Represents a double curved arrow between two points. Inherits from CurvedArrow. Behaviour very close from its parent class. When playing the animation ShowCreation, first draws the curved arrow from start_point to end_point and then draws the tip at start_point.
Parameters :
- start_point : numpy array of dimension 3
- start point
- end_point : numpy array of dimension 3
- end point
- angle : float (in radians), optional, default: TAU/4 (equal to PI/2)
- total angle between the start point and the end point, measured from the arc_center
Circle¶
Represents a circle. Inherits from Arc. Default color is red.
Parameters :
- radius : float, optional, default: 1.0
- distance from arc_center to the arc
- arc_center : numpy array of dimension 3, optional, default: ORIGIN
- point to which all points in the arc are equidistants
Dot¶
Represents a dot. Inherits from Circle. Default color is white.
Parameters :
- point : numpy array of dimension 3, optional, default: ORIGIN
- center of the dot
- radius : float, optional, default: DEFAULT_DOT_RADIUS
- size of the dot
SmallDot¶
Represents a small dot. Inherits from Dot. It has exactly the same behaviour as Dot except its radius is set to DEFAULT_SMALL_DOT_RADIUS.
Ellipse¶
Represents an ellipse. Inherits from Circle. The ellipse is built by passing the dimensions of the rectangle in which the ellipse is inscribed.
Parameters :
- width : float, optional, default: 2
- width of the rectangle in which the ellipse is inscribed
- height : float, optional, default: 1
- height of the rectangle in which the ellipse is inscribed
- arc_center : numpy array of dimension 3, optional, default: ORIGIN
- center of the ellipse
AnnularSector¶
Represents an annular sector. Inherits from Arc. Default color is white.
Parameters :
- inner_radius : float, optional, default: 1
- radius of the inner arc
- outer_radius : float, optional, default: 2
- radius of the outer arc
- start_angle : float (in radians), optional, default: 0
- start angle of the two arcs
- angle : float (in radians), optional, default: TAU/4 (equal PI/2)
- angle between the start angle and the last point of the two arcs
- arc_center : numpy array of dimension 3, optional, default: ORIGIN
- center of the annular sector
Sector¶
Represents a sector, like a part of a pie. Inherits from AnnularSector.
Parameters :
- outer_radius : float, optional, default: 1
- radius of the arc
- start_angle : float (in radians), optional, default: 0
- start angle of the arc
- angle : float (in radians), optional, default: TAU/4 (equal PI/2)
- angle between the start angle and the last point of the arc
- arc_center : numpy array of dimension 3, optional, default: ORIGIN
- center of the sector
Annulus¶
Represents an annulus (ring shape). Inherits from Circle. Default color is white.
Parameters :
- inner_radius : float, optional, default: 1
- radius of the inner circle
- outer_radius : float, optional, default: 2
- radius of the outer circle
- arc_center : numpy array of dimension 3, optional, default: ORIGIN
- center of the two circles
Line¶
Represents a line. Inherits from TipableVMobject.
Parameters :
- start : numpy array of dimension 3, optional, default: LEFT
- start point of the line
- end : numpy array of dimension 3, optional, default: RIGHT
- end point of the line
- path_arc : float (in radians), optional, default: None
- if set to None, the line is a straight line. Otherwise, the line is a curved line between start and end with the angle specified. Behaviour becomes similar to ArcBetweenPoints.
DashedLine¶
Represents a dashed line. Inherits from Line.
Parameters :
- start : numpy array of dimension 3, optional, default: LEFT
- start point of the line
- end : numpy array of dimension 3, optional, default: RIGHT
- end point of the line
- path_arc : float (in radians), optional, default: None
- if set to None, the line is a straight line. Otherwise, the line is a curved line between start and end with the angle specified. Behaviour becomes similar to ArcBetweenPoints.
- dash_length : float, optional, default: DEFAULT_DASH_LENGTH
- length of each dash
- positive_space_ratio : float (> 0 and <= 1), optional, default: 0.5
- ratio in one unit of space the length of one dash. This means that one dash and one blank space occupy dash_length/positive_space_ratio.
TangentLine¶
Represents a straight line tangent to a given object. Inherits from Line.
Parameters :
- vmob :
- object to which the line is tangent
- alpha : float (between 0 and 1)
- indicates the position of the tangent line. On the circle 0 represents tangent at point at angle 0 and 0.5 represents tangent at point at angle PI.
- length : float, optional, default:1
- length of the line
Elbow¶
Represents the perpendicular symbol. Inherits from VMobject.
Parameters :
- width : float, optional, default: 0.2
- length from each side of the symbol
Methods :
- set_points_as_corners(points) :
- set the points corners to the three points passed as arguments
- set_width(width, about_point=ORIGIN) :
- set the length from each side of the symbol and centers the symbol at about_point
Example :
Here is an example on how to place the elbow in a triangle.
class ElbowExample(Scene):
def construct(self):
triangle = Polygon(ORIGIN, RIGHT, RIGHT+UP)
elbow = Elbow(color=RED)
elbow.set_points_as_corners([ORIGIN, RIGHT, RIGHT+UP])
elbow.set_width(elbow.width, about_point=RIGHT+np.array([-0.1, 0.1, 0.0]))
self.add(triangle)
self.add(elbow)
self.wait(2)
Arrow¶
Represents an arrow. Inherits from Line.
Parameters :
- start : numpy array of dimension 3, optional, default: LEFT
- start point of the arrow
- end : numpy array of dimension 3, optional, default: RIGHT
- end point of the arrow
Vector¶
Represents an arrow from the origin to another point. Inherits from Arrow.
Parameters :
- direction : numpy array of dimension 3, optional, default: RIGHT
- point towards which the arrow goes
DoubleArrow¶
Represents a double arrow. Inherits from Arrow.
Parameters :
- start : numpy array of dimension 3, optional, default: LEFT
- start point of the arrow
- end : numpy array of dimension 3, optional, default: RIGHT
- end point of the arrow
Polygon¶
Represents a polygon. Inherits from VMobject. Default color is blue.
Parameters :
- *vertices : numpy array of dimension 3
- all the vertices defining the polygon
Example :
class PolygonExample(Scene):
def construct(self):
pentagon = Polygon(2*UP, RIGHT+UP, RIGHT+DOWN, LEFT+DOWN, LEFT+UP)
self.play(ShowCreation(pentagon))
self.wait(2)
RegularPolygon¶
Represents a regular polygon. Inherits from Polygon.
Parameters :
- n : int, optional, default:6
- number of polygon’s edges
Triangle¶
Represents a equiteral triangle. Inherits from RegularPolygon.
Rectangle¶
Represents a rectangle. Inherits from Polygon.
Parameters :
- height : float, optional, default: 2.0
- height of the rectangle
- width : float, optional, default: 4.0
- width of the rectangle
Square¶
Represents a square. Inherits from Rectangle.
Parameters :
side_length : float, optional, default: 2.0
RoundedRectangle¶
Represents a rectangle with rounded corners. Inherits from Rectangle.
Parameters :
- height : float, optional, default: 2.0
- height of the rectangle
- width : float, optional, default: 4.0
- width of the rectangle
- corner_radius : float, optional, default: 0.5
- radius of the arcs composing the corners