From 97304819532bab5ae96083f97e0ed9513367d864 Mon Sep 17 00:00:00 2001 From: catdog2 Date: Tue, 11 Nov 2008 20:31:04 +0000 Subject: [PATCH] Pfandanzeige git-svn-id: http://svn.lsim.tuxzone.org/trunk@12 4bec179b-ab65-46ed-a5f8-55b8b5c735d0 --- lsim.kdevelop | 2 +- lsim.kdevelop.pcs | Bin 111111 -> 179138 bytes lsim.kdevses | 76 ++++-------------------------------- src/graphicsellipseitem.cpp | 23 ++++++++++- src/graphicsellipseitem.h | 9 ++++- src/homobfieldwidget.cpp | 2 +- src/homoefieldwidget.cpp | 2 +- src/probechargewidget.cpp | 2 +- src/simulscene.cpp | 21 +++++++--- src/simulscene.h | 7 ++++ 10 files changed, 64 insertions(+), 80 deletions(-) diff --git a/lsim.kdevelop b/lsim.kdevelop index dd1595c..ee263e1 100644 --- a/lsim.kdevelop +++ b/lsim.kdevelop @@ -155,7 +155,7 @@ false - + -style Plastique /mnt/sdb1/c++/lsim diff --git a/lsim.kdevelop.pcs b/lsim.kdevelop.pcs index 1dd25dbddc043b28d8b23eb39f4e82ee8f859bac..bede53632fdb58eb9c782bc59f75cf1f4c293873 100644 GIT binary patch literal 179138 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 delta 3343 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 - - - + + + - - + + - + - - + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/src/graphicsellipseitem.cpp b/src/graphicsellipseitem.cpp index e8a2412..66663ae 100644 --- a/src/graphicsellipseitem.cpp +++ b/src/graphicsellipseitem.cpp @@ -21,6 +21,8 @@ #include #include #include +#include +#include #include #include "simulscene.h" #include "probechargewidget.h" @@ -40,7 +42,7 @@ GraphicsEllipseItem::GraphicsEllipseItem() { currProbePath = new QList; speedListX = new QList; speedListY = new QList; - + } void GraphicsEllipseItem::timerEvent ( QTimerEvent * event ) { static double vx; @@ -89,6 +91,9 @@ void GraphicsEllipseItem::calculateProbePath(QPointF startPoint) { speedListX->append(startSpeedX); speedListY->append(startSpeedY); + //startpunkt in den Pfad setzen + flightPath = QPainterPath(startPoint); + for(int i = 1; i< steps;++i) { double myMasse = getMasse( sqrt( speedListX->at(i-1)*speedListX->at(i-1) + speedListY->at(i-1)*speedListY->at(i-1) ) ); @@ -110,10 +115,13 @@ void GraphicsEllipseItem::calculateProbePath(QPointF startPoint) { double deltaDistX = (deltaDistXconst + deltaDistXaccel); double deltaDistY = (deltaDistYconst + deltaDistYaccel); + + QPointF newPoint(currProbePath->at(i-1).x() + deltaDistX/meterPerPx ,currProbePath->at(i-1).y() + deltaDistY/meterPerPx); - currProbePath->append(QPointF(currProbePath->at(i-1).x() + deltaDistX/meterPerPx ,currProbePath->at(i-1).y() + deltaDistY/meterPerPx)); + currProbePath->append(newPoint); speedListX->append(newspeedX); speedListY->append(newspeedY); + /*if(i%10 == 0)*/ flightPath.lineTo(newPoint); } @@ -204,3 +212,14 @@ void GraphicsEllipseItem::setScenePosX(double newPosX) { moveBy(newPosX - scenePos().x(),0 ); } + + +QPainterPath GraphicsEllipseItem::getFlightPath() const { + return flightPath; +} + + +void GraphicsEllipseItem::setFlightPath ( const QPainterPath& theValue ) { + if (flightPath==theValue) return; + flightPath = theValue; +} diff --git a/src/graphicsellipseitem.h b/src/graphicsellipseitem.h index 3f66ab1..c25ad0f 100644 --- a/src/graphicsellipseitem.h +++ b/src/graphicsellipseitem.h @@ -23,6 +23,8 @@ #include #include class ProbeChargeWidget; +class QPainterPath; +class QGraphicsPathItem; /** @author Peter Dahlberg @@ -47,7 +49,7 @@ class GraphicsEllipseItem : public QObject , public QGraphicsEllipseItem { */ double getMasse(double speed); - + QPainterPath getFlightPath() const; protected: @@ -73,6 +75,8 @@ class GraphicsEllipseItem : public QObject , public QGraphicsEllipseItem { QPointF myScenePos; + ///Pfad der Flugbahn + QPainterPath flightPath; public slots: //! Berechnet die Bewegung der Probeladung @@ -90,6 +94,9 @@ class GraphicsEllipseItem : public QObject , public QGraphicsEllipseItem { void setScenePosY(double newPosY); void setScenePosX(double newPosX); void handleSceneChange(const QList & /*region*/); + + void setFlightPath ( const QPainterPath& theValue ); + signals: void startSpeedXChanged(double speed); void startSpeedYChanged(double speed); diff --git a/src/homobfieldwidget.cpp b/src/homobfieldwidget.cpp index 4dc20af..16deb0a 100644 --- a/src/homobfieldwidget.cpp +++ b/src/homobfieldwidget.cpp @@ -85,7 +85,7 @@ void HomoBFieldWidget::createWidget() { QLabel* fieldFluxDensityLabel = new QLabel(tr("Flussdichte(B):")); ExpDoubleSpinBox* fieldFluxDensityBox = new ExpDoubleSpinBox; - fieldFluxDensityBox->setRange(-1e+200,1e+200); + fieldFluxDensityBox->setRange(0,1e+200); fieldFluxDensityBox->setDecimals(40); fieldFluxDensityBox->setDisplayDecimals(3); fieldFluxDensityBox->setKeyboardTracking(false); diff --git a/src/homoefieldwidget.cpp b/src/homoefieldwidget.cpp index d01afba..f07b82b 100644 --- a/src/homoefieldwidget.cpp +++ b/src/homoefieldwidget.cpp @@ -108,7 +108,7 @@ void HomoEFieldWidget::createWidget() QLabel* voltageLabel = new QLabel(tr("Spannung:")); ExpDoubleSpinBox* fieldPowerBox = new ExpDoubleSpinBox; - fieldPowerBox->setRange(-1e+200,1e+200); + fieldPowerBox->setRange(0,1e+200); fieldPowerBox->setDecimals(35); fieldPowerBox->setDisplayDecimals(3); fieldPowerBox->setKeyboardTracking(false); diff --git a/src/probechargewidget.cpp b/src/probechargewidget.cpp index 97dbbc3..0986f5c 100644 --- a/src/probechargewidget.cpp +++ b/src/probechargewidget.cpp @@ -112,7 +112,7 @@ void ProbeChargeWidget::createWidget() ExpDoubleSpinBox* masseBox = new ExpDoubleSpinBox; - masseBox->setRange(-1e+200,1e+200); + masseBox->setRange(0,1e+200); masseBox->setDecimals(50); masseBox->setDisplayDecimals(3); masseBox->setKeyboardTracking(false); diff --git a/src/simulscene.cpp b/src/simulscene.cpp index f0ae3b9..a473644 100644 --- a/src/simulscene.cpp +++ b/src/simulscene.cpp @@ -33,7 +33,8 @@ #include #include #include - +#include +#include SimulScene::SimulScene ( QObject* parent ) : QGraphicsScene ( parent ) { @@ -49,6 +50,10 @@ SimulScene::SimulScene ( QObject* parent ) : QGraphicsScene ( parent ) { currHomoBfieldEditItem = 0; createResizeRects(); + + //path Item Erstellen + pathItem1 = addPath(QPainterPath()); + addLine(0,-298,0,298,QPen(Qt::green, 1, Qt::SolidLine) )->setCacheMode(QGraphicsItem::DeviceCoordinateCache); addLine(-398,0,398,0,QPen(Qt::green, 1, Qt::SolidLine) )->setCacheMode(QGraphicsItem::DeviceCoordinateCache); @@ -90,15 +95,15 @@ SimulScene::SimulScene ( QObject* parent ) : QGraphicsScene ( parent ) { ani->setItem(ellipse1); ani->setTimeLine(timer); - } void SimulScene::startTimer() { timer->setCurrentTime(0); ani->clear(); - for (int i=0; igetCurrProbePath()->count(); + for (int i=0; isetPosAt(i/200.0, QPointF(x , 0.5 * ay * pow(( (x/1000) /vx),2) *1000 )); - ani->setPosAt(i/(double)getSteps(), ellipse1->getCurrProbePath()->at(i) ); + ani->setPosAt(i/(double)currSteps, ellipse1->getCurrProbePath()->at(i) ); //qDebug()<< getSteps(); } timer->start(); @@ -582,7 +587,8 @@ void SimulScene::setTimePerStep(double time) { \fn SimulScene::startCalculation() */ void SimulScene::startCalculation() { - ellipse1->calculateProbePath(ellipse1->pos()); + ellipse1->calculateProbePath(ellipse1->pos()); + pathItem1->setPath(ellipse1->getFlightPath()); } @@ -667,3 +673,8 @@ void SimulScene::setMeterPerPx ( double theValue ) { QWidget* SimulScene::getProbeDockWidget() const { return ellipse1->getDockWidget(); } + +void SimulScene::setFlightPathVisible(bool visible) { + pathItem1->setVisible(visible); + emit flightPathVisibilityChanged(visible); +} \ No newline at end of file diff --git a/src/simulscene.h b/src/simulscene.h index 841d7d0..5bf8a9b 100644 --- a/src/simulscene.h +++ b/src/simulscene.h @@ -29,6 +29,8 @@ class QGraphicsRectItem; class QGraphicsItemGroup; class GraphicsEllipseItem; class QGraphicsItemAnimation; +class QGraphicsPathItem; +class QPainterPath; /** @author Peter Dahlberg @@ -69,16 +71,19 @@ class SimulScene : public QGraphicsScene { void setMeterPerPx ( double theValue ); double getMeterPerPx() const; + void setFlightPathVisible(bool visible = true); private slots: void displayResizeRects(bool move = false); ///does the same as displayResizeRects(true) void moveResizeRects(); + signals: void sceneModeChanged(int mode); void stepsChanged(int steps); void timePerStepChanged(double timePerStep); void meterPerPxChanged(double meterPerPx); + void flightPathVisibilityChanged(bool visible); private: QTimeLine *timer; @@ -101,6 +106,8 @@ class SimulScene : public QGraphicsScene { GraphicsEllipseItem *ellipse1; QGraphicsItemAnimation *ani; + + QGraphicsPathItem *pathItem1; //rechtecke zur groesenaenderung