Gsk.PathPoint¶
Fields¶
None
Methods¶
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Details¶
- class Gsk.PathPoint¶
An opaque type representing a point on a path.
It can be queried for properties of the path at that point, such as its tangent or its curvature.
To obtain a
GskPathPoint
, use [method`Gsk`.Path.get_closest_point], [method`Gsk`.Path.get_start_point], [method`Gsk`.Path.get_end_point] or [method`Gsk`.PathMeasure.get_point].Note that
GskPathPoint
structs are meant to be stack-allocated, and don’t hold a reference to the path object they are obtained from. It is the callers responsibility to keep a reference to the path as long as theGskPathPoint
is used.New in version 4.14.
- compare(point2)¶
- Parameters:
point2 (
Gsk.PathPoint
) – another path point- Returns:
-1 if self is before point2, 1 if self is after point2, 0 if they are equal
- Return type:
Returns whether self is before or after point2.
New in version 4.14.
- copy()¶
- Returns:
the copied point
- Return type:
Copies a path point.
New in version 4.14.
- equal(point2)¶
- Parameters:
point2 (
Gsk.PathPoint
) – another path point- Returns:
true if self and point2 are equal
- Return type:
Returns whether the two path points refer to the same location on all paths.
Note that the start- and endpoint of a closed contour will compare nonequal according to this definition. Use [method`Gsk`.Path.is_closed] to find out if the start- and endpoint of a concrete path refer to the same location.
New in version 4.14.
- free()¶
Frees a path point copied by [method`Gsk`.PathPoint.copy].
New in version 4.14.
- get_curvature(path, direction)¶
- Parameters:
path (
Gsk.Path
) – the path that self is ondirection (
Gsk.PathDirection
) – the direction for which to return the curvature
- Returns:
the curvature of the path at the given point
- center:
return location for the center of the osculating circle
- Return type:
(
float
, center:Graphene.Point
orNone
)
Calculates the curvature of the path at the point.
Optionally, returns the center of the osculating circle as well. The curvature is the inverse of the radius of the osculating circle.
Lines have a curvature of zero (indicating an osculating circle of infinite radius). In this case, the center is not modified.
Circles with a radius of zero have
INFINITY
as curvatureNote that certain points on a path may not have a single curvature, such as sharp turns. At such points, there are two curvatures — the (limit of) the curvature of the path going into the point, and the (limit of) the curvature of the path coming out of it. The direction argument lets you choose which one to get.
<picture> <source srcset=”curvature-dark.png” media=”(prefers-color-scheme: dark)”> <img alt=”Osculating circle” src=”curvature-light.png”> </picture>
New in version 4.14.
- get_distance(measure)¶
- Parameters:
measure (
Gsk.PathMeasure
) – a path measure for the path- Returns:
the distance of self
- Return type:
Returns the distance from the beginning of the path to the point.
New in version 4.14.
- get_position(path)¶
- Parameters:
path (
Gsk.Path
) – the path that self is on- Returns:
Return location for the coordinates of the point
- Return type:
position:
Graphene.Point
Gets the position of the point.
New in version 4.14.
- get_rotation(path, direction)¶
- Parameters:
path (
Gsk.Path
) – the path that self is ondirection (
Gsk.PathDirection
) – the direction for which to return the rotation
- Returns:
the angle between the tangent and the X axis, in degrees
- Return type:
Gets the direction of the tangent at a given point.
This is a convenience variant of [method`Gsk`.PathPoint.get_tangent] that returns the angle between the tangent and the X axis. The angle can e.g. be used in gtk_snapshot_rotate().
New in version 4.14.
- get_tangent(path, direction)¶
- Parameters:
path (
Gsk.Path
) – the path that self is ondirection (
Gsk.PathDirection
) – the direction for which to return the tangent
- Returns:
Return location for the tangent at the point
- Return type:
tangent:
Graphene.Vec2
Gets the tangent of the path at the point.
Note that certain points on a path may not have a single tangent, such as sharp turns. At such points, there are two tangents — the direction of the path going into the point, and the direction coming out of it. The direction argument lets you choose which one to get.
If the path is just a single point (e.g. a circle with radius zero), then the tangent is set to
0, 0
.If you want to orient something in the direction of the path, [method`Gsk`.PathPoint.get_rotation] may be more convenient to use.
New in version 4.14.