11 #ifndef _QWT_POINT_POLAR_H_
12 #define _QWT_POINT_POLAR_H_ 1
14 #include "qwt_global.h"
17 #ifndef QT_NO_DEBUG_STREAM
36 void setPoint(
const QPointF & );
37 QPointF toPoint()
const;
42 double radius()
const;
43 double azimuth()
const;
48 void setRadius(
double );
49 void setAzimuth(
double );
88 d_azimuth( other.d_azimuth ),
89 d_radius( other.d_radius )
96 return d_radius >= 0.0;
102 return d_radius == 0.0;
141 #ifndef QT_NO_DEBUG_STREAM
142 QWT_EXPORT QDebug operator<<( QDebug,
const QwtPointPolar & );
145 inline QPoint qwtPolar2Pos(
const QPoint &pole,
146 double radius,
double angle )
148 const double x = pole.x() + radius * qCos( angle );
149 const double y = pole.y() - radius * qSin( angle );
151 return QPoint( qRound( x ), qRound( y ) );
154 inline QPoint qwtDegree2Pos(
const QPoint &pole,
155 double radius,
double angle )
157 return qwtPolar2Pos( pole, radius, angle / 180.0 * M_PI );
160 inline QPointF qwtPolar2Pos(
const QPointF &pole,
161 double radius,
double angle )
163 const double x = pole.x() + radius * qCos( angle );
164 const double y = pole.y() - radius * qSin( angle );
166 return QPointF( x, y);
169 inline QPointF qwtDegree2Pos(
const QPointF &pole,
170 double radius,
double angle )
172 return qwtPolar2Pos( pole, radius, angle / 180.0 * M_PI );
175 inline QPointF qwtFastPolar2Pos(
const QPointF &pole,
176 double radius,
double angle )
178 #if QT_VERSION < 0x040601
179 const double x = pole.x() + radius * ::cos( angle );
180 const double y = pole.y() - radius * ::sin( angle );
182 const double x = pole.x() + radius * qFastCos( angle );
183 const double y = pole.y() - radius * qFastSin( angle );
186 return QPointF( x, y);
189 inline QPointF qwtFastDegree2Pos(
const QPointF &pole,
190 double radius,
double angle )
192 return qwtFastPolar2Pos( pole, radius, angle / 180.0 * M_PI );
198 qSqrt( qwtSqr( pos.x() ) + qwtSqr( pos.y() ) ) );
A point in polar coordinates.
Definition: qwt_point_polar.h:28
double & rAzimuth()
Returns the azimuth.
Definition: qwt_point_polar.h:124
bool isNull() const
Returns true if radius() >= 0.0.
Definition: qwt_point_polar.h:100
bool isValid() const
Returns true if radius() >= 0.0.
Definition: qwt_point_polar.h:94
double azimuth() const
Returns the azimuth.
Definition: qwt_point_polar.h:112
QwtPointPolar()
Definition: qwt_point_polar.h:65
double radius() const
Returns the radius.
Definition: qwt_point_polar.h:106
void setRadius(double)
Sets the radius to radius.
Definition: qwt_point_polar.h:130
void setAzimuth(double)
Sets the atimuth to atimuth.
Definition: qwt_point_polar.h:136
double & rRadius()
Returns the radius.
Definition: qwt_point_polar.h:118