Subgroup: Curve

Class: QgsCurve

class qgis.core.QgsCurve

Bases: qgis._core.QgsAbstractGeometry

Constructor for QgsCurve.

QgsCurve(QgsCurve)

Abstract base class for curved geometry type

New in version 2.10: Methods

addToPainterPath Adds a curve to a painter path.
adjacentVertices
asQPolygonF Returns a QPolygonF representing the points.
boundary
boundingBox
calculateBoundingBox
childCount
childGeometry
childPoint
clearCache
clone
coordinateSequence
curveSubstring Returns a new curve representing a substring of this curve.
curveToLine Returns a new line string geometry corresponding to a segmentized approximation of the curve.
drawAsPolygon Draws the curve as a polygon on the specified QPainter.
endPoint Returns the end point of the curve.
equals Checks whether this curve exactly equals another curve.
hasChildGeometries
interpolatePoint Returns an interpolated point on the curve at the specified distance.
isClosed Returns true if the curve is closed.
isRing Returns true if the curve is a ring.
nextVertex
numPoints Returns the number of points in the curve.
partCount
pointAt Returns the point and vertex id of a point within the curve.
points Returns a list of points within the curve.
reversed Returns a reversed copy of the curve, where the direction of the curve has been flipped.
ringCount
segmentize Returns a geometry without curves.
setZMTypeFromSubGeometry
sinuosity Returns the curve sinuosity, which is the ratio of the curve length() to curve straightDistance2d().
startPoint Returns the starting point of the curve.
straightDistance2d Returns the straight distance of the curve, i.e.
sumUpArea Sums up the area of the curve by iterating over the vertices (shoelace formula).
toCurveType
vertexAt
vertexCount
vertexNumberFromVertexId
xAt Returns the x-coordinate of the specified node in the line string.
yAt Returns the y-coordinate of the specified node in the line string.

Signals

Attributes

addToPainterPath(self, path: QPainterPath)

Adds a curve to a painter path.

adjacentVertices(self, vertex: QgsVertexId) → Tuple[QgsVertexId, QgsVertexId]
asQPolygonF(self) → QPolygonF

Returns a QPolygonF representing the points.

boundary(self) → QgsAbstractGeometry
boundingBox(self) → QgsRectangle
calculateBoundingBox()
childCount(self) → int
childGeometry()
childPoint(self, index: int) → QgsPoint
clearCache(self)
clone(self) → QgsCurve
coordinateSequence(self) → object
curveSubstring(self, startDistance: float, endDistance: float) → QgsCurve

Returns a new curve representing a substring of this curve.

The startDistance and endDistance arguments specify the length along the curve which the substring should start and end at. If the endDistance is greater than the total length of the curve then any “extra” length will be ignored.

If z or m values are present, the output z and m will be interpolated using the existing vertices’ z or m values.

New in version 3.4.

curveToLine(self, tolerance: float = M_PI_2/90, toleranceType: QgsAbstractGeometry.SegmentationToleranceType = QgsAbstractGeometry.MaximumAngle) → QgsLineString

Returns a new line string geometry corresponding to a segmentized approximation of the curve.

Parameters:
  • tolerance – segmentation tolerance
  • toleranceType – maximum segmentation angle or maximum difference between approximation and curve

Uses a MaximumAngle tolerance of 1 degrees by default (360 segments in a full circle)

drawAsPolygon(self, p: QPainter)

Draws the curve as a polygon on the specified QPainter.

Parameters:p – destination QPainter
endPoint(self) → QgsPoint

Returns the end point of the curve.

See also

startPoint()

equals(self, other: QgsCurve) → bool

Checks whether this curve exactly equals another curve.

New in version 3.0.

hasChildGeometries()
interpolatePoint(self, distance: float) → QgsPoint

Returns an interpolated point on the curve at the specified distance.

If z or m values are present, the output z and m will be interpolated using the existing vertices’ z or m values.

If distance is negative, or is greater than the length of the curve, a None will be returned.

New in version 3.4.

isClosed(self) → bool

Returns true if the curve is closed.

isRing(self) → bool

Returns true if the curve is a ring.

nextVertex(self, id: QgsVertexId) → Tuple[bool, QgsPoint]
numPoints(self) → int

Returns the number of points in the curve.

partCount(self) → int
pointAt(self, node: int) → Tuple[bool, QgsPoint, QgsVertexId.VertexType]

Returns the point and vertex id of a point within the curve.

Parameters:
  • node – node number, where the first node is 0
  • point – will be set to point at corresponding node in the curve
  • type – will be set to the vertex type of the node
Returns:

true if node exists within the curve

points(self) → object

Returns a list of points within the curve.

reversed(self) → QgsCurve

Returns a reversed copy of the curve, where the direction of the curve has been flipped.

New in version 2.14.

ringCount(self, part: int = 0) → int
segmentize(self, tolerance: float = M_PI_2/90, toleranceType: QgsAbstractGeometry.SegmentationToleranceType = QgsAbstractGeometry.MaximumAngle) → QgsCurve

Returns a geometry without curves. Caller takes ownership

Parameters:
  • tolerance – segmentation tolerance
  • toleranceType – maximum segmentation angle or maximum difference between approximation and curve*
setZMTypeFromSubGeometry()
sinuosity(self) → float

Returns the curve sinuosity, which is the ratio of the curve length() to curve straightDistance2d(). Larger numbers indicate a more “sinuous” curve (i.e. more “bendy”). The minimum value returned of 1.0 indicates a perfectly straight curve.

If a curve isClosed(), it has infinite sinuosity and will return NaN.

New in version 3.2.

startPoint(self) → QgsPoint

Returns the starting point of the curve.

See also

endPoint()

straightDistance2d(self) → float

Returns the straight distance of the curve, i.e. the direct/euclidean distance between the first and last vertex of the curve. (Also known as “as the crow flies” distance).

New in version 3.2.

sumUpArea(self) → float

Sums up the area of the curve by iterating over the vertices (shoelace formula).

toCurveType(self) → QgsCurve
vertexAt(self, id: QgsVertexId) → QgsPoint
vertexCount(self, part: int = 0, ring: int = 0) → int
vertexNumberFromVertexId(self, id: QgsVertexId) → int
xAt(self, index: int) → float

Returns the x-coordinate of the specified node in the line string.

Parameters:index – index of node, where the first node in the line is 0
Returns:x-coordinate of node, or 0.0 if index is out of bounds
yAt(self, index: int) → float

Returns the y-coordinate of the specified node in the line string.

Parameters:index – index of node, where the first node in the line is 0
Returns:y-coordinate of node, or 0.0 if index is out of bounds