21 #include <QApplication>
22 #include <KPlotObject>
29 mouseButtonDown(false), oldx(0), oldy(0)
31 setFocusPolicy( Qt::StrongFocus );
32 setMouseTracking (
true);
33 setAntialiasing(
true);
41 double xc = (dataRect().right() + dataRect().x())*0.5;
42 double yc = (dataRect().bottom() + dataRect().y())*0.5;
43 double xstep = 0.01*(dataRect().right() - dataRect().x());
44 double ystep = 0.01*(dataRect().bottom() - dataRect().y());
45 double dx = 0.5*dataRect().width();
46 double dy = 0.5*dataRect().height();
50 if ( xc - xstep > -
AUMAX ) {
51 setLimits( dataRect().x() - xstep, dataRect().right() - xstep, dataRect().y(), dataRect().bottom() );
58 if ( xc + xstep <
AUMAX ) {
59 setLimits( dataRect().x() + xstep, dataRect().right() + xstep, dataRect().y(), dataRect().bottom() );
66 if ( yc - ystep > -
AUMAX ) {
67 setLimits( dataRect().x(), dataRect().right(), dataRect().y() - ystep, dataRect().bottom() - ystep );
74 if ( yc + ystep <
AUMAX ) {
75 setLimits( dataRect().x(), dataRect().right(), dataRect().y() + ystep, dataRect().bottom() + ystep );
87 case Qt::Key_Underscore:
92 setLimits( -dx, dx, -dy, dy );
99 KPlotPoint *p = plotObjects().at(10)->points().at(0);
100 setLimits( p->x() - dx, p->x() + dx, p->y() - dy, p->y() + dy );
108 KPlotPoint *p = plotObjects().at(11)->points().at(0);
109 setLimits( p->x() - dx, p->x() + dx, p->y() - dy, p->y() + dy );
117 KPlotPoint *p = plotObjects().at(12)->points().at(0);
118 setLimits( p->x() - dx, p->x() + dx, p->y() - dy, p->y() + dy );
126 KPlotPoint *p = plotObjects().at(13)->points().at(0);
127 setLimits( p->x() - dx, p->x() + dx, p->y() - dy, p->y() + dy );
135 KPlotPoint *p = plotObjects().at(14)->points().at(0);
136 setLimits( p->x() - dx, p->x() + dx, p->y() - dy, p->y() + dy );
144 KPlotPoint *p = plotObjects().at(15)->points().at(0);
145 setLimits( p->x() - dx, p->x() + dx, p->y() - dy, p->y() + dy );
153 KPlotPoint *p = plotObjects().at(16)->points().at(0);
154 setLimits( p->x() - dx, p->x() + dx, p->y() - dy, p->y() + dy );
162 KPlotPoint *p = plotObjects().at(17)->points().at(0);
163 setLimits( p->x() - dx, p->x() + dx, p->y() - dy, p->y() + dy );
171 KPlotPoint *p = plotObjects().at(18)->points().at(0);
172 setLimits( p->x() - dx, p->x() + dx, p->y() - dy, p->y() + dy );
185 mouseButtonDown =
true;
191 mouseButtonDown =
false;
196 if ( mouseButtonDown ) {
198 double xc = (dataRect().right() + dataRect().x())*0.5;
199 double yc = (dataRect().bottom() + dataRect().y())*0.5;
200 double xscale = dataRect().width()/( width() - leftPadding() - rightPadding() );
201 double yscale = dataRect().height()/( height() - topPadding() - bottomPadding() );
203 xc += ( oldx - e->x() )*xscale;
204 yc -= ( oldy - e->y() )*yscale;
207 setLimits( xc - 0.5*dataRect().width(), xc + 0.5*dataRect().width(),
208 yc - 0.5*dataRect().height(), yc + 0.5*dataRect().height() );
210 qApp->processEvents();
219 double xscale = dataRect().width()/( width() - leftPadding() - rightPadding() );
220 double yscale = dataRect().height()/( height() - topPadding() - bottomPadding() );
222 double xc = dataRect().x() + xscale*( e->x() - leftPadding() );
223 double yc = dataRect().bottom() - yscale*( e->y() - topPadding() );
226 setLimits( xc - 0.5*dataRect().width(), xc + 0.5*dataRect().width(),
227 yc - 0.5*dataRect().height(), yc + 0.5*dataRect().height() );
232 for (
unsigned int i=0; i<9; ++i ) {
233 KPlotPoint *point = pv->
planetObject(i)->points().at(0);
234 double dx = ( point->x() - xc )/xscale;
236 double dy = ( point->y() - yc )/yscale;
237 if ( sqrt( dx*dx + dy*dy ) < 4.0 ) {
250 double size = dataRect().width();
252 setLimits( dataRect().x() + 0.02*size, dataRect().right() - 0.02*size, dataRect().y() + 0.02*size, dataRect().bottom() - 0.02*size );
258 double size = dataRect().width();
259 if ( (size) < 100.0 ) {
260 setLimits( dataRect().x() - 0.02*size, dataRect().right() + 0.02*size, dataRect().y() - 0.02*size, dataRect().bottom() + 0.02*size );
265 #include "pvplotwidget.moc"
QString planetName(uint i) const
void setCenterPlanet(const QString &cp)
KPlotObject * planetObject(uint i) const
Display an overhead view of the solar system.