Files
qwt/doc/man/man3/QwtBezier.3
2023-10-31 09:22:42 +01:00

190 lines
4.5 KiB
Groff
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
.TH "QwtBezier" 3 "Sun Jul 18 2021" "Version 6.2.0" "Qwt User's Guide" \" -*- nroff -*-
.ad l
.nh
.SH NAME
QwtBezier \- An implementation of the de Casteljaus Algorithm for interpolating Bézier curves\&.
.SH SYNOPSIS
.br
.PP
.PP
\fC#include <qwt_bezier\&.h>\fP
.SS "Public Member Functions"
.in +1c
.ti -1c
.RI "\fBQwtBezier\fP (double \fBtolerance\fP=0\&.5)"
.br
.RI "Constructor\&. "
.ti -1c
.RI "\fB~QwtBezier\fP ()"
.br
.RI "Destructor\&. "
.ti -1c
.RI "void \fBsetTolerance\fP (double \fBtolerance\fP)"
.br
.ti -1c
.RI "double \fBtolerance\fP () const"
.br
.ti -1c
.RI "QPolygonF \fBtoPolygon\fP (const QPointF &p1, const QPointF &cp1, const QPointF &cp2, const QPointF &p2) const"
.br
.RI "Interpolate a Bézier curve by a polygon\&. "
.ti -1c
.RI "void \fBappendToPolygon\fP (const QPointF &p1, const QPointF &cp1, const QPointF &cp2, const QPointF &p2, QPolygonF &polygon) const"
.br
.RI "Interpolate a Bézier curve by a polygon\&. "
.in -1c
.SS "Static Public Member Functions"
.in +1c
.ti -1c
.RI "static QPointF \fBpointAt\fP (const QPointF &p1, const QPointF &cp1, const QPointF &cp2, const QPointF &p2, double t)"
.br
.in -1c
.SH "Detailed Description"
.PP
An implementation of the de Casteljaus Algorithm for interpolating Bézier curves\&.
The flatness criterion for terminating the subdivision is based on 'Piecewise Linear Approximation of Bézier Curves' by Roger Willcocks ( http://www.rops.org )
.PP
This article explains the maths behind in a very nice way: https://jeremykun.com/2013/05/11/bezier-curves-and-picasso
.PP
Definition at line 29 of file qwt_bezier\&.h\&.
.SH "Constructor & Destructor Documentation"
.PP
.SS "QwtBezier::QwtBezier (double tolerance = \fC0\&.5\fP)"
.PP
Constructor\&.
.PP
\fBParameters\fP
.RS 4
\fItolerance\fP Termination criterion for the subdivision
.RE
.PP
\fBSee also\fP
.RS 4
\fBsetTolerance()\fP
.RE
.PP
.PP
Definition at line 116 of file qwt_bezier\&.cpp\&.
.SH "Member Function Documentation"
.PP
.SS "void QwtBezier::appendToPolygon (const QPointF & p1, const QPointF & cp1, const QPointF & cp2, const QPointF & p2, QPolygonF & polygon) const"
.PP
Interpolate a Bézier curve by a polygon\&. \fBappendToPolygon()\fP is tailored for cumulating points from a sequence of bezier curves like being created by a spline interpolation\&.
.PP
\fBParameters\fP
.RS 4
\fIp1\fP Start point
.br
\fIcp1\fP First control point
.br
\fIcp2\fP Second control point
.br
\fIp2\fP End point
.br
\fIpolygon\fP Polygon, where the interpolating points are added
.RE
.PP
\fBNote\fP
.RS 4
If the last point of the incoming polygon matches p1 it won't be inserted a second time\&.
.RE
.PP
.PP
Definition at line 186 of file qwt_bezier\&.cpp\&.
.SS "QPointF QwtBezier::pointAt (const QPointF & p1, const QPointF & cp1, const QPointF & cp2, const QPointF & p2, double t)\fC [static]\fP"
Find a point on a Bézier Curve
.PP
\fBParameters\fP
.RS 4
\fIp1\fP Start point
.br
\fIcp1\fP First control point
.br
\fIcp2\fP Second control point
.br
\fIp2\fP End point
.br
\fIt\fP Parameter value, something between [0,1]
.RE
.PP
\fBReturns\fP
.RS 4
Point on the curve
.RE
.PP
.PP
Definition at line 239 of file qwt_bezier\&.cpp\&.
.SS "void QwtBezier::setTolerance (double tolerance)"
Set the tolerance
.PP
The tolerance is a measurement for the flatness of a curve\&. A curve with a flatness below the tolerance is considered as being flat terminating the subdivision algorithm\&.
.PP
When interpolating a Bezier curve to render it as a sequence of lines to some sort of raster ( f\&.e to screen ) a value of 0\&.5 of the pixel size is a good value for the tolerance\&.
.PP
\fBParameters\fP
.RS 4
\fItolerance\fP Termination criterion for the subdivision
.RE
.PP
\fBSee also\fP
.RS 4
\fBtolerance()\fP
.RE
.PP
.PP
Definition at line 141 of file qwt_bezier\&.cpp\&.
.SS "double QwtBezier::tolerance () const\fC [inline]\fP"
.PP
\fBReturns\fP
.RS 4
Tolerance, that is used as criterion for the subdivision
.RE
.PP
\fBSee also\fP
.RS 4
\fBsetTolerance()\fP
.RE
.PP
.PP
Definition at line 56 of file qwt_bezier\&.h\&.
.SS "QPolygonF QwtBezier::toPolygon (const QPointF & p1, const QPointF & cp1, const QPointF & cp2, const QPointF & p2) const"
.PP
Interpolate a Bézier curve by a polygon\&.
.PP
\fBParameters\fP
.RS 4
\fIp1\fP Start point
.br
\fIcp1\fP First control point
.br
\fIcp2\fP Second control point
.br
\fIp2\fP End point
.RE
.PP
\fBReturns\fP
.RS 4
Interpolating polygon
.RE
.PP
.PP
Definition at line 157 of file qwt_bezier\&.cpp\&.
.SH "Author"
.PP
Generated automatically by Doxygen for Qwt User's Guide from the source code\&.