wxArt2D
|
Quadratic Bezier curve. More...
#include <polyver.h>
Public Member Functions | |
a2dVpathQBCurveSegment (double x1, double y1, double x2, double y2, a2dPATHSEG type=a2dPATHSEG_QBCURVETO, a2dPATHSEG_END close=a2dPATHSEG_END_OPEN) | |
constructor More... | |
a2dVpathQBCurveSegment (a2dVpathSegmentPtr prev, double x1, double y1, a2dPATHSEG type=a2dPATHSEG_QBCURVETO, a2dPATHSEG_END close=a2dPATHSEG_END_OPEN) | |
constructor More... | |
a2dVpathQBCurveSegment (const a2dVpathQBCurveSegment &other) | |
copy constructor | |
~a2dVpathQBCurveSegment () | |
destructor | |
virtual a2dVpathSegment * | Clone () |
create exact copy | |
virtual double | Length (a2dVpathSegmentPtr prev) |
calculate length | |
void | PositionAt (a2dVpathSegmentPtr prev, double t, double &xt, double &yt) |
calculate position at t, used for length | |
![]() | |
a2dVpathSegment (double x, double y, a2dPATHSEG type=a2dPATHSEG_LINETO, a2dPATHSEG_END close=a2dPATHSEG_END_OPEN) | |
constructor More... | |
a2dVpathSegment (const a2dVpathSegment &other) | |
constructor | |
virtual | ~a2dVpathSegment () |
destructor | |
a2dPATHSEG | GetType () const |
easy way to test type of segment | |
bool | GetBin () const |
used in processing | |
void | SetBin (bool bin) |
used in processing | |
a2dPATHSEG_END | GetClose () const |
is this segment the closing a part since the last move | |
void | SetClose (a2dPATHSEG_END close) |
set this segment is closing a part since the last move | |
Public Attributes | |
double | m_x2 |
control point | |
double | m_y2 |
control point | |
![]() | |
double | m_x1 |
x endpoint of line | |
double | m_y1 |
y endpoint of line | |
bool | m_bin: 1 |
Marker for walking over the segments. | |
a2dPATHSEG | m_type: 5 |
easy way to test type of segment | |
a2dPATHSEG_END | m_close: 3 |
is the path closing here or not | |
Quadratic Bezier curve.
Create a curved segment based on qaudratic Bezier spline let P0 be end point of previous segment let P1 be inbetween point of this segment (m_x2, m_y2) let P2 be end point of this segment (m_x1, m_y1)
Then the formula describing points on the curve are:
For ( 0 <= t <= 1 ) Point(t) = (1-t)^2*P0 + 2*t*(1-t)*P1 + t^2*P2
a2dVpathQBCurveSegment::a2dVpathQBCurveSegment | ( | double | x1, |
double | y1, | ||
double | x2, | ||
double | y2, | ||
a2dPATHSEG | type = a2dPATHSEG_QBCURVETO , |
||
a2dPATHSEG_END | close = a2dPATHSEG_END_OPEN |
||
) |
constructor
x1 | endpoint of curve |
y1 | endpoint of curve |
x2 | first control point coming from previous segment in path |
y2 | first control point coming from previous segment in path |
type | draw or move towards point |
close | if true close this path with the last move command/segment |
Definition at line 3566 of file polyver.cpp.
a2dVpathQBCurveSegment::a2dVpathQBCurveSegment | ( | a2dVpathSegmentPtr | prev, |
double | x1, | ||
double | y1, | ||
a2dPATHSEG | type = a2dPATHSEG_QBCURVETO , |
||
a2dPATHSEG_END | close = a2dPATHSEG_END_OPEN |
||
) |
constructor
prev | previous segment |
x1 | endpoint of curve |
y1 | endpoint of curve |
type | draw or move towards point |
close | if true close this path with the last move command/segment |
Definition at line 3578 of file polyver.cpp.