#include <math.h>
#include <qpainter.h>
#include "qwt_math.h"
#include "qwt_painter.h"
#include "qwt_compass_rose.h"
Go to the source code of this file.
Functions | |
static QPoint | cutPoint (QPoint p11, QPoint p12, QPoint p21, QPoint p22) |
static QPoint cutPoint | ( | QPoint | p11, |
QPoint | p12, | ||
QPoint | p21, | ||
QPoint | p22 | ||
) | [static] |
Definition at line 16 of file qwt_compass_rose.cpp.
References QuadProgPP::t().
Referenced by QwtSimpleCompassRose::drawRose().
{ double dx1 = p12.x() - p11.x(); double dy1 = p12.y() - p11.y(); double dx2 = p22.x() - p21.x(); double dy2 = p22.y() - p21.y(); if ( dx1 == 0.0 && dx2 == 0.0 ) return QPoint(); if ( dx1 == 0.0 ) { const double m = dy2 / dx2; const double t = p21.y() - m * p21.x(); return QPoint(p11.x(), qRound(m * p11.x() + t)); } if ( dx2 == 0 ) { const double m = dy1 / dx1; const double t = p11.y() - m * p11.x(); return QPoint(p21.x(), qRound(m * p21.x() + t)); } const double m1 = dy1 / dx1; const double t1 = p11.y() - m1 * p11.x(); const double m2 = dy2 / dx2; const double t2 = p21.y() - m2 * p21.x(); if ( m1 == m2 ) return QPoint(); const double x = ( t2 - t1 ) / ( m1 - m2 ); const double y = t1 + m1 * x; return QPoint(qRound(x), qRound(y)); }