-
pygame.geometry
Warning
Experimental Module
This module is a work in progress. Refrain from relying on any features provided by this module, as they are subject to change or removal without prior notice.
— pygame object for representing a circle New in pygame-ce 2.4.0.
pygame module for the Circle, Line, and Polygon objects- pygame.Circle¶
- pygame object for representing a circleCircle((x, y), radius) -> CircleCircle(x, y, radius) -> Circle
— center x coordinate of the circle — center y coordinate of the circle — radius of the circle — radius of the circle squared — x and y coordinates of the center of the circle — diameter of the circle — area of the circle — circumference of the circle — test if a point is inside the circle — test if two circles collide — moves the circle by a given amount — moves the circle by a given amount, in place — checks if a rectangle intersects the circle — check if a shape or point collides with the circle — check if a shape or point is inside the circle — updates the circle position and radius — rotates the circle — rotates the circle in place — returns the smallest pygame.Rect object that contains the circle — returns the smallest pygame.FRect object that contains the circle — returns a copy of the circle The Circle class provides many useful methods for collision / transform and intersection. A Circle can be created from a combination of a pair of coordinates that represent the center of the circle and a radius. Circles can also be created from python objects that are already a Circle or have an attribute named "circle".
Specifically, to construct a circle you can pass the x, y, and radius values as separate arguments or inside a sequence(list or tuple).
Functions that require a Circle argument may also accept these values as Circles:
((x, y), radius) (x, y, radius)
The Circle class has both virtual and non-virtual attributes. Non-virtual attributes are attributes that are stored in the Circle object itself. Virtual attributes are the result of calculations that utilize the Circle's non-virtual attributes.
Here is the list of all the attributes and methods of the Circle class:
Circle Attributes
- x¶
- center x coordinate of the circlex -> float
The x coordinate of the center of the circle. It can be reassigned to move the circle. Reassigning the x attribute will move the circle to the new x coordinate. The y and r attributes will not be affected.
New in pygame-ce 2.4.0.
- y¶
- center y coordinate of the circley -> float
The y coordinate of the center of the circle. It can be reassigned to move the circle. Reassigning the y attribute will move the circle to the new y coordinate. The x and r attributes will not be affected.
New in pygame-ce 2.4.0.
- r¶
- radius of the circler -> float
It is not possible to set the radius to a negative value. It can be reassigned. If reassigned it will only change the radius of the circle. The circle will not be moved from its original position.
New in pygame-ce 2.4.0.
Changed in pygame-ce 2.5.1: It is allowed to create degenerate circles with radius equal to
0
. This also applies to virtual attributes.
- r_sqr¶
- radius of the circle squaredr_sqr -> float
It's equivalent to r*r. It can be reassigned. If reassigned, the radius of the circle will be changed to the square root of the new value. The circle will not be moved from its original position.
New in pygame-ce 2.4.0.
- center¶
- x and y coordinates of the center of the circlecenter -> (float, float)
It's a tuple containing the x and y coordinates that represent the center of the circle. It can be reassigned. If reassigned, the circle will be moved to the new position. The radius will not be affected.
New in pygame-ce 2.4.0.
- diameter¶
- diameter of the circlediameter -> float
It's calculated using the d=2*r formula. It can be reassigned. If reassigned the radius will be changed to half the diameter. The circle will not be moved from its original position.
New in pygame-ce 2.4.0.
- area¶
- area of the circlearea -> float
It's calculated using the area=pi*r*r formula. It can be reassigned. If reassigned the circle radius will be changed to produce a circle with matching area. The circle will not be moved from its original position.
New in pygame-ce 2.4.0.
- circumference¶
- circumference of the circlecircumference -> float
It's calculated using the circumference=2*pi*r formula. It can be reassigned. If reassigned the circle radius will be changed to produce a circle with matching circumference. The circle will not be moved from its original position.
New in pygame-ce 2.4.0.
Circle Methods
- collidepoint()¶
- test if a point is inside the circlecollidepoint((x, y), /) -> boolcollidepoint(x, y, /) -> boolcollidepoint(vector2, /) -> bool
The collidepoint method tests whether a given point is inside the Circle (including the edge of the Circle). It takes a tuple of (x, y) coordinates, two separate x and y coordinates, or a Vector2 object as its argument, and returns True if the point is inside the Circle, False otherwise.
New in pygame-ce 2.4.0.
- collidecircle()¶
- test if two circles collidecollidecircle(circle, /) -> boolcollidecircle(x, y, radius, /) -> boolcollidecircle((x, y), radius, /) -> bool
The collidecircle method tests whether two Circle objects overlap. It takes either a Circle object, a tuple of (x, y) coordinates and a radius, or separate x and y coordinates and a radius as its argument, and returns True if any portion of the two Circle objects overlap, False otherwise.
Note
If this method is called with a Circle object that is the same as the Circle it is called on, it will always return True.
New in pygame-ce 2.4.0.
- move()¶
- moves the circle by a given amountmove((x, y), /) -> Circlemove(x, y, /) -> Circlemove(vector2, /) -> Circle
The move method allows you to create a new Circle object that is moved by a given offset from the original Circle. This is useful if you want to move a Circle without modifying the original. The move method takes either a tuple of (x, y) coordinates, two separate x and y coordinates, or a Vector2 object as its argument, and returns a new Circle object with the updated position.
Note
This method is equivalent(behaviour wise) to the following code:
Circle((circle.x + x, circle.y + y), circle.r)
New in pygame-ce 2.5.0.
- move_ip()¶
- moves the circle by a given amount, in placemove_ip((x, y), /) -> Nonemove_ip(x, y, /) -> Nonemove_ip(vector2, /) -> None
The move_ip method is similar to the move method, but it moves the Circle in place, modifying the original Circle object. This method takes the same types of arguments as move, and it always returns None.
Note
This method is equivalent(behaviour wise) to the following code:
circle.x += x circle.y += y
New in pygame-ce 2.5.0.
- colliderect()¶
- checks if a rectangle intersects the circlecolliderect(rect, /) -> boolcolliderect((x, y, width, height), /) -> boolcolliderect(x, y, width, height, /) -> boolcolliderect((x, y), (width, height), /) -> bool
The colliderect method tests whether a given rectangle intersects the Circle. It takes either a Rect object, a tuple of (x, y, width, height) coordinates, or separate x, y coordinates and width, height as its argument. Returns True if any portion of the rectangle overlaps with the Circle, False otherwise.
New in pygame-ce 2.4.0.
- collideswith()¶
- check if a shape or point collides with the circlecollideswith(circle, /) -> boolcollideswith(rect, /) -> boolcollideswith((x, y), /) -> boolcollideswith(vector2, /) -> bool
The collideswith method checks if a shape or point overlaps with a Circle object. It takes a single argument which can be a Circle, Rect, FRect, or a point. It returns True if there's an overlap, and False otherwise.
Note
The shape argument must be an actual shape object (Circle, Rect, or FRect). You can't pass a tuple or list of coordinates representing the shape (except for a point), because the shape type can't be determined from the coordinates alone.
New in pygame-ce 2.5.0.
- contains()¶
- check if a shape or point is inside the circlecontains(circle, /) -> boolcontains(rect, /) -> boolcontains((x, y), /) -> boolcontains(vector2, /) -> bool
Checks whether a given shape or point is completely contained within the Circle. Takes a single argument which can be a Circle, Rect, FRect, or a point. Returns True if the shape or point is completely contained, and False otherwise.
Note
The shape argument must be an actual shape object (Circle, Rect, or FRect). You can't pass a tuple or list of coordinates representing the shape (except for a point), because the shape type can't be determined from the coordinates alone.
New in pygame-ce 2.5.0.
- update()¶
- updates the circle position and radiusupdate((x, y), radius, /) -> Noneupdate(x, y, radius, /) -> None
The update method allows you to set the position and radius of a Circle object in place. This method takes either a tuple of (x, y) coordinates, two separate x and y coordinates, and a radius as its arguments, and it always returns None.
Note
This method is equivalent(behaviour wise) to the following code:
circle.x = x circle.y = y circle.r = radius
New in pygame-ce 2.4.0.
- rotate()¶
- rotates the circlerotate(angle, rotation_point=Circle.center, /) -> Circlerotate(angle, /) -> Circle
Returns a new Circle that is rotated by the specified angle around a point. A positive angle rotates the circle clockwise, while a negative angle rotates it counter-clockwise. Angles should be specified in degrees. The rotation point can be a tuple, list, or Vector2. If no rotation point is given, the circle will be rotated around its center.
New in pygame-ce 2.5.0.
- rotate_ip()¶
- rotates the circle in placerotate_ip(angle, rotation_point=Circle.center, /) -> Nonerotate_ip(angle, /) -> None
This method rotates the circle by a specified angle around a point. A positive angle rotates the circle clockwise, while a negative angle rotates it counter-clockwise. Angles should be specified in degrees. The rotation point can be a tuple, list, or Vector2. If no rotation point is given, the circle will be rotated around its center.
New in pygame-ce 2.5.0.
- as_rect()¶
- returns the smallest pygame.Rect object that contains the circleas_rect() -> Rect
The as_rect method returns a pygame.Rect object that represents the smallest rectangle that completely contains the Circle object. This means that the Rect object returned by as_rect will have dimensions such that it completely encloses the Circle, with no part of the Circle extending outside of the Rect.
Note
This method is equivalent(behaviour wise) to the following code:
Rect(circle.x - circle.r, circle.y - circle.r, circle.r * 2, circle.r * 2)
New in pygame-ce 2.5.0.
- as_frect()¶
- returns the smallest pygame.FRect object that contains the circleas_frect() -> FRect
The as_frect method returns a pygame.FRect object that represents the smallest rectangle that completely contains the Circle object. This means that the FRect object returned by as_rect will have dimensions such that it completely encloses the Circle, with no part of the Circle extending outside of the FRect.
Note
This method is equivalent(behaviour wise) to the following code:
FRect(circle.x - circle.r, circle.y - circle.r, circle.r * 2, circle.r * 2)
New in pygame-ce 2.5.0.
- copy()¶
- returns a copy of the circlecopy() -> Circle
The copy method returns a new Circle object having the same position and radius as the original Circle object. The function takes no arguments and returns the new Circle object.
New in pygame-ce 2.4.0.
Edit on GitHub