animationsberechnung bei grossen steps beschleunigt, usw.

git-svn-id: http://svn.lsim.tuxzone.org/trunk@13 4bec179b-ab65-46ed-a5f8-55b8b5c735d0
This commit is contained in:
catdog2
2008-11-12 21:50:47 +00:00
parent 9730481953
commit 75632cdbbc
7 changed files with 340 additions and 40 deletions

Binary file not shown.

View File

@@ -1,19 +1,25 @@
<?xml version = '1.0' encoding = 'UTF-8'?> <?xml version = '1.0' encoding = 'UTF-8'?>
<!DOCTYPE KDevPrjSession> <!DOCTYPE KDevPrjSession>
<KDevPrjSession> <KDevPrjSession>
<DocsAndViews NumberOfDocuments="4" > <DocsAndViews NumberOfDocuments="6" >
<Doc0 NumberOfViews="1" URL="file:///mnt/sdb1/c%2B%2B/lsim/src/simulscene.h" > <Doc0 NumberOfViews="1" URL="file:///mnt/sdb1/c%2B%2B/lsim/src/simulscene.h" >
<View0 Encoding="" line="35" Type="Source" /> <View0 Encoding="" line="85" Type="Source" />
</Doc0> </Doc0>
<Doc1 NumberOfViews="1" URL="file:///mnt/sdb1/c%2B%2B/lsim/src/simulscene.cpp" > <Doc1 NumberOfViews="1" URL="file:///mnt/sdb1/c%2B%2B/lsim/src/simulscene.cpp" >
<View0 Encoding="" line="94" Type="Source" /> <View0 Encoding="" line="42" Type="Source" />
</Doc1> </Doc1>
<Doc2 NumberOfViews="1" URL="file:///mnt/sdb1/c%2B%2B/lsim/src/graphicsellipseitem.h" > <Doc2 NumberOfViews="1" URL="file:///mnt/sdb1/c%2B%2B/lsim/src/graphicsellipseitem.h" >
<View0 Encoding="" line="51" Type="Source" /> <View0 Encoding="" line="51" Type="Source" />
</Doc2> </Doc2>
<Doc3 NumberOfViews="1" URL="file:///mnt/sdb1/c%2B%2B/lsim/src/graphicsellipseitem.cpp" > <Doc3 NumberOfViews="1" URL="file:///mnt/sdb1/c%2B%2B/lsim/src/graphicsellipseitem.cpp" >
<View0 Encoding="" line="216" Type="Source" /> <View0 Encoding="" line="130" Type="Source" />
</Doc3> </Doc3>
<Doc4 NumberOfViews="1" URL="file:///mnt/sdb1/c%2B%2B/lsim/src/homobfieldwidget.cpp" >
<View0 Encoding="" line="39" Type="Source" />
</Doc4>
<Doc5 NumberOfViews="1" URL="file:///mnt/sdb1/c%2B%2B/lsim/src/homoefieldwidget.cpp" >
<View0 Encoding="" line="110" Type="Source" />
</Doc5>
</DocsAndViews> </DocsAndViews>
<pluginList> <pluginList>
<kdevdebugger> <kdevdebugger>

306
lsim.tag
View File

@@ -252,6 +252,26 @@
<arglist>[]</arglist> <arglist>[]</arglist>
</member> </member>
</compound> </compound>
<compound kind="file">
<name>moc_graphicsellipseitem.cpp</name>
<path>/mnt/sdb1/c++/lsim/src/</path>
<filename>moc__graphicsellipseitem_8cpp</filename>
<includes id="graphicsellipseitem_8h" name="graphicsellipseitem.h" local="yes" imported="no">graphicsellipseitem.h</includes>
<member kind="variable" static="yes">
<type>static QT_BEGIN_MOC_NAMESPACE const uint</type>
<name>qt_meta_data_GraphicsEllipseItem</name>
<anchorfile>moc__graphicsellipseitem_8cpp.html</anchorfile>
<anchor>7a420d39c97f6c6a807b8b13097760c2</anchor>
<arglist>[]</arglist>
</member>
<member kind="variable" static="yes">
<type>static const char</type>
<name>qt_meta_stringdata_GraphicsEllipseItem</name>
<anchorfile>moc__graphicsellipseitem_8cpp.html</anchorfile>
<anchor>ec943eb354cf5c270edb9ae531f4bcf6</anchor>
<arglist>[]</arglist>
</member>
</compound>
<compound kind="file"> <compound kind="file">
<name>moc_graphicsview.cpp</name> <name>moc_graphicsview.cpp</name>
<path>/mnt/sdb1/c++/lsim/src/</path> <path>/mnt/sdb1/c++/lsim/src/</path>
@@ -570,6 +590,20 @@
<anchor>72fd535bd8226c8d6957c61f8b540533</anchor> <anchor>72fd535bd8226c8d6957c61f8b540533</anchor>
<arglist>() const </arglist> <arglist>() const </arglist>
</member> </member>
<member kind="function">
<type>void</type>
<name>setDisplayDecimals</name>
<anchorfile>classExpDoubleSpinBox.html</anchorfile>
<anchor>8db051482a63d8a8ca78d230e93f7880</anchor>
<arglist>(int theValue)</arglist>
</member>
<member kind="function">
<type>int</type>
<name>getDisplayDecimals</name>
<anchorfile>classExpDoubleSpinBox.html</anchorfile>
<anchor>43ab08ed497441e3ea23b96e4ad9e1a6</anchor>
<arglist>() const </arglist>
</member>
<member kind="function" protection="protected" virtualness="virtual"> <member kind="function" protection="protected" virtualness="virtual">
<type>virtual QDoubleSpinBox::StepEnabled</type> <type>virtual QDoubleSpinBox::StepEnabled</type>
<name>stepEnabled</name> <name>stepEnabled</name>
@@ -591,6 +625,13 @@
<anchor>b5b74897fb840c451265e2aac1f2fbd4</anchor> <anchor>b5b74897fb840c451265e2aac1f2fbd4</anchor>
<arglist></arglist> <arglist></arglist>
</member> </member>
<member kind="variable" protection="private">
<type>int</type>
<name>displayDecimals</name>
<anchorfile>classExpDoubleSpinBox.html</anchorfile>
<anchor>afad6f01498806cbb460d729eec53faf</anchor>
<arglist></arglist>
</member>
</compound> </compound>
<compound kind="class"> <compound kind="class">
<name>FieldItem</name> <name>FieldItem</name>
@@ -763,6 +804,13 @@
<anchor>4642adc434298f0fc0c9f5e9e75666ed</anchor> <anchor>4642adc434298f0fc0c9f5e9e75666ed</anchor>
<arglist>(QGraphicsItem *item)</arglist> <arglist>(QGraphicsItem *item)</arglist>
</member> </member>
<member kind="function" protection="protected" virtualness="virtual">
<type>virtual void</type>
<name>wheelEvent</name>
<anchorfile>classFieldItem.html</anchorfile>
<anchor>10c79fa0b47e07e35e276e85d58e0878</anchor>
<arglist>(QGraphicsSceneWheelEvent *event)</arglist>
</member>
<member kind="variable" protection="protected"> <member kind="variable" protection="protected">
<type>QPointF</type> <type>QPointF</type>
<name>myScenePos</name> <name>myScenePos</name>
@@ -792,8 +840,8 @@
<type>void</type> <type>void</type>
<name>calculateProbePath</name> <name>calculateProbePath</name>
<anchorfile>classGraphicsEllipseItem.html</anchorfile> <anchorfile>classGraphicsEllipseItem.html</anchorfile>
<anchor>2cdad5fc83d96af73ae8c136b53e5fe1</anchor> <anchor>6a2deb321fc5196c441a8f8b89b43fb4</anchor>
<arglist>(QPointF startPoint=QPointF(0, 0), double startSpeedX=0, double startSpeedY=0)</arglist> <arglist>(QPointF startPoint=QPointF(0, 0))</arglist>
</member> </member>
<member kind="slot"> <member kind="slot">
<type>void</type> <type>void</type>
@@ -802,26 +850,103 @@
<anchor>7230ec257dd669949e9d3ada7a51923a</anchor> <anchor>7230ec257dd669949e9d3ada7a51923a</anchor>
<arglist>(const double &amp;theValue)</arglist> <arglist>(const double &amp;theValue)</arglist>
</member> </member>
<member kind="slot">
<type>double</type>
<name>getMasse</name>
<anchorfile>classGraphicsEllipseItem.html</anchorfile>
<anchor>edd61d768890e05097cac9285ff63aba</anchor>
<arglist>(double speed)</arglist>
</member>
<member kind="slot"> <member kind="slot">
<type>void</type> <type>void</type>
<name>setCharge</name> <name>setCharge</name>
<anchorfile>classGraphicsEllipseItem.html</anchorfile> <anchorfile>classGraphicsEllipseItem.html</anchorfile>
<anchor>fb65dbef1a6c2a46d43957655e6c3942</anchor> <anchor>1d5b324628b73a3da5b0c864cf8630a5</anchor>
<arglist>(const long double &amp;theValue)</arglist> <arglist>(const double &amp;theValue)</arglist>
</member> </member>
<member kind="slot"> <member kind="slot">
<type>long double</type> <type>void</type>
<name>getCharge</name> <name>setStartSpeedX</name>
<anchorfile>classGraphicsEllipseItem.html</anchorfile> <anchorfile>classGraphicsEllipseItem.html</anchorfile>
<anchor>1f873b91eb795f77342cba8430bc0dd5</anchor> <anchor>3a90229a6cd448ad8c2ecc1c173c214a</anchor>
<arglist>() const </arglist> <arglist>(double theValue)</arglist>
</member>
<member kind="slot">
<type>void</type>
<name>setStartSpeedY</name>
<anchorfile>classGraphicsEllipseItem.html</anchorfile>
<anchor>776b2265625e4ef50afad2f5d3e9b9a7</anchor>
<arglist>(double theValue)</arglist>
</member>
<member kind="slot">
<type>void</type>
<name>setScenePosY</name>
<anchorfile>classGraphicsEllipseItem.html</anchorfile>
<anchor>2076f345c5b2841953809e665e22ceb5</anchor>
<arglist>(double newPosY)</arglist>
</member>
<member kind="slot">
<type>void</type>
<name>setScenePosX</name>
<anchorfile>classGraphicsEllipseItem.html</anchorfile>
<anchor>3ffee0531e48adc8f9d9fef0db79473d</anchor>
<arglist>(double newPosX)</arglist>
</member>
<member kind="slot">
<type>void</type>
<name>handleSceneChange</name>
<anchorfile>classGraphicsEllipseItem.html</anchorfile>
<anchor>cc5753c7193a85cb7e3fc69aeed7df11</anchor>
<arglist>(const QList&lt; QRectF &gt; &amp;)</arglist>
</member>
<member kind="slot">
<type>void</type>
<name>setFlightPath</name>
<anchorfile>classGraphicsEllipseItem.html</anchorfile>
<anchor>e8c50bea63a7e0a4e4cb80cab277906b</anchor>
<arglist>(const QPainterPath &amp;theValue)</arglist>
</member>
<member kind="signal">
<type>void</type>
<name>startSpeedXChanged</name>
<anchorfile>classGraphicsEllipseItem.html</anchorfile>
<anchor>84901ac57b2171f9a0df5a0863332fe3</anchor>
<arglist>(double speed)</arglist>
</member>
<member kind="signal">
<type>void</type>
<name>startSpeedYChanged</name>
<anchorfile>classGraphicsEllipseItem.html</anchorfile>
<anchor>772b99820f776f62156f5caf8af22b2e</anchor>
<arglist>(double speed)</arglist>
</member>
<member kind="signal">
<type>void</type>
<name>masseChanged</name>
<anchorfile>classGraphicsEllipseItem.html</anchorfile>
<anchor>b2fe738f18ee90d63d09b575c356dadb</anchor>
<arglist>(double masse)</arglist>
</member>
<member kind="signal">
<type>void</type>
<name>chargeChanged</name>
<anchorfile>classGraphicsEllipseItem.html</anchorfile>
<anchor>7a6cb698db7b4bed7386df3d9f60b6fb</anchor>
<arglist>(double Charge)</arglist>
</member>
<member kind="signal">
<type>void</type>
<name>ScenePosChanged</name>
<anchorfile>classGraphicsEllipseItem.html</anchorfile>
<anchor>754ecb303588efafc1bc6e17e701358c</anchor>
<arglist>(QPointF newpos)</arglist>
</member>
<member kind="signal">
<type>void</type>
<name>ScenePosXChanged</name>
<anchorfile>classGraphicsEllipseItem.html</anchorfile>
<anchor>abcdcc33150b34498a7b8da26d044c5b</anchor>
<arglist>(double newX)</arglist>
</member>
<member kind="signal">
<type>void</type>
<name>ScenePosYChanged</name>
<anchorfile>classGraphicsEllipseItem.html</anchorfile>
<anchor>5aeccf41db0391d25f2da1357986c479</anchor>
<arglist>(double newY)</arglist>
</member> </member>
<member kind="function"> <member kind="function">
<type></type> <type></type>
@@ -851,6 +976,41 @@
<anchor>130f0b45e6fe641c29928e51b468418b</anchor> <anchor>130f0b45e6fe641c29928e51b468418b</anchor>
<arglist>()</arglist> <arglist>()</arglist>
</member> </member>
<member kind="function">
<type>double</type>
<name>getCharge</name>
<anchorfile>classGraphicsEllipseItem.html</anchorfile>
<anchor>201122c3425a9cd56b9213d6968bd3f6</anchor>
<arglist>() const </arglist>
</member>
<member kind="function">
<type>double</type>
<name>getStartSpeedX</name>
<anchorfile>classGraphicsEllipseItem.html</anchorfile>
<anchor>9f04be533240195d2dc87244262f1808</anchor>
<arglist>() const </arglist>
</member>
<member kind="function">
<type>double</type>
<name>getStartSpeedY</name>
<anchorfile>classGraphicsEllipseItem.html</anchorfile>
<anchor>e2fff1f0c10a454b6f9b7695d1ee4b39</anchor>
<arglist>() const </arglist>
</member>
<member kind="function">
<type>double</type>
<name>getMasse</name>
<anchorfile>classGraphicsEllipseItem.html</anchorfile>
<anchor>edd61d768890e05097cac9285ff63aba</anchor>
<arglist>(double speed)</arglist>
</member>
<member kind="function">
<type>QPainterPath</type>
<name>getFlightPath</name>
<anchorfile>classGraphicsEllipseItem.html</anchorfile>
<anchor>2e652c4e80a854b57ae6fc765ed77920</anchor>
<arglist>() const </arglist>
</member>
<member kind="function" protection="protected"> <member kind="function" protection="protected">
<type>void</type> <type>void</type>
<name>mousePressEvent</name> <name>mousePressEvent</name>
@@ -907,6 +1067,34 @@
<anchor>afa81f63289aa4d4624f38015b37d643</anchor> <anchor>afa81f63289aa4d4624f38015b37d643</anchor>
<arglist></arglist> <arglist></arglist>
</member> </member>
<member kind="variable" protection="private">
<type>double</type>
<name>startSpeedX</name>
<anchorfile>classGraphicsEllipseItem.html</anchorfile>
<anchor>72602152d2a445aad22958cc816f1308</anchor>
<arglist></arglist>
</member>
<member kind="variable" protection="private">
<type>double</type>
<name>startSpeedY</name>
<anchorfile>classGraphicsEllipseItem.html</anchorfile>
<anchor>2aab36c74f1e052f672ef50a5fcab2a4</anchor>
<arglist></arglist>
</member>
<member kind="variable" protection="private">
<type>QPointF</type>
<name>myScenePos</name>
<anchorfile>classGraphicsEllipseItem.html</anchorfile>
<anchor>032ca02363fb03fd2a778ea109133250</anchor>
<arglist></arglist>
</member>
<member kind="variable" protection="private">
<type>QPainterPath</type>
<name>flightPath</name>
<anchorfile>classGraphicsEllipseItem.html</anchorfile>
<anchor>e498c2f89012d31c2c12f3a4c6e9154e</anchor>
<arglist></arglist>
</member>
</compound> </compound>
<compound kind="class"> <compound kind="class">
<name>GraphicsView</name> <name>GraphicsView</name>
@@ -983,6 +1171,13 @@
<anchor>6a5ecd467c67a3a358bfe853dd19335f</anchor> <anchor>6a5ecd467c67a3a358bfe853dd19335f</anchor>
<arglist>(bool theValue)</arglist> <arglist>(bool theValue)</arglist>
</member> </member>
<member kind="slot">
<type>void</type>
<name>setFluxDensity</name>
<anchorfile>classHomoBFieldItem.html</anchorfile>
<anchor>5fc3191fef621a3c3d3e239f338ae347</anchor>
<arglist>(double theValue)</arglist>
</member>
<member kind="signal"> <member kind="signal">
<type>void</type> <type>void</type>
<name>directionChanged</name> <name>directionChanged</name>
@@ -990,6 +1185,13 @@
<anchor>432f975078b7fddcf1e2a470491d8e10</anchor> <anchor>432f975078b7fddcf1e2a470491d8e10</anchor>
<arglist>(bool theValue)</arglist> <arglist>(bool theValue)</arglist>
</member> </member>
<member kind="signal">
<type>void</type>
<name>fluxDensityChanged</name>
<anchorfile>classHomoBFieldItem.html</anchorfile>
<anchor>911669c9afda72705b801ab2d4745163</anchor>
<arglist>(double theValue)</arglist>
</member>
<member kind="function"> <member kind="function">
<type></type> <type></type>
<name>HomoBFieldItem</name> <name>HomoBFieldItem</name>
@@ -1060,6 +1262,20 @@
<anchor>efb3cf5f1132b110f698519878afdc76</anchor> <anchor>efb3cf5f1132b110f698519878afdc76</anchor>
<arglist>() const </arglist> <arglist>() const </arglist>
</member> </member>
<member kind="function">
<type>double</type>
<name>getFluxDensity</name>
<anchorfile>classHomoBFieldItem.html</anchorfile>
<anchor>7310d5af24b8a1f1955db694f3638fe6</anchor>
<arglist>() const </arglist>
</member>
<member kind="function" protection="protected">
<type>void</type>
<name>wheelEvent</name>
<anchorfile>classHomoBFieldItem.html</anchorfile>
<anchor>0a75d5844cf88d92d3ec8a09434d798e</anchor>
<arglist>(QGraphicsSceneWheelEvent *event)</arglist>
</member>
<member kind="variable" protection="private"> <member kind="variable" protection="private">
<type>int</type> <type>int</type>
<name>fieldLineDistance</name> <name>fieldLineDistance</name>
@@ -1088,6 +1304,13 @@
<anchor>35bec97190b75fa64b7876533c4ef8a5</anchor> <anchor>35bec97190b75fa64b7876533c4ef8a5</anchor>
<arglist></arglist> <arglist></arglist>
</member> </member>
<member kind="variable" protection="private">
<type>double</type>
<name>fluxDensity</name>
<anchorfile>classHomoBFieldItem.html</anchorfile>
<anchor>caf386ad7e2013f9a9ee32df346da659</anchor>
<arglist></arglist>
</member>
</compound> </compound>
<compound kind="class"> <compound kind="class">
<name>HomoBFieldWidget</name> <name>HomoBFieldWidget</name>
@@ -1513,6 +1736,13 @@
<anchor>9546761515a2022d7a29c570fd6fa1d6</anchor> <anchor>9546761515a2022d7a29c570fd6fa1d6</anchor>
<arglist></arglist> <arglist></arglist>
</member> </member>
<member kind="variable">
<type>QAction *</type>
<name>timerStop</name>
<anchorfile>structlsim_1_1Actions.html</anchorfile>
<anchor>e21383d2adcb3d34d4b631b7b130da53</anchor>
<arglist></arglist>
</member>
<member kind="variable"> <member kind="variable">
<type>QAction *</type> <type>QAction *</type>
<name>itemEditModeAct</name> <name>itemEditModeAct</name>
@@ -1620,6 +1850,13 @@
<anchor>b3adfc8c3b2313c9c80414e0ac3ba6b2</anchor> <anchor>b3adfc8c3b2313c9c80414e0ac3ba6b2</anchor>
<arglist>()</arglist> <arglist>()</arglist>
</member> </member>
<member kind="slot">
<type>void</type>
<name>stopTimer</name>
<anchorfile>classSimulScene.html</anchorfile>
<anchor>e586360d85b6eea44cb7def1a2b3ab8a</anchor>
<arglist>()</arglist>
</member>
<member kind="slot"> <member kind="slot">
<type>void</type> <type>void</type>
<name>deleteSelectedFieldItems</name> <name>deleteSelectedFieldItems</name>
@@ -1662,6 +1899,13 @@
<anchor>501a15eebf6fdb98bff8984a370c3197</anchor> <anchor>501a15eebf6fdb98bff8984a370c3197</anchor>
<arglist>() const </arglist> <arglist>() const </arglist>
</member> </member>
<member kind="slot">
<type>void</type>
<name>setFlightPathVisible</name>
<anchorfile>classSimulScene.html</anchorfile>
<anchor>e5957131232c8d3139975f909f49b43c</anchor>
<arglist>(bool visible=true)</arglist>
</member>
<member kind="signal"> <member kind="signal">
<type>void</type> <type>void</type>
<name>sceneModeChanged</name> <name>sceneModeChanged</name>
@@ -1690,6 +1934,13 @@
<anchor>e2a1abff3b5f2b7f1fdc7d97d39a7e41</anchor> <anchor>e2a1abff3b5f2b7f1fdc7d97d39a7e41</anchor>
<arglist>(double meterPerPx)</arglist> <arglist>(double meterPerPx)</arglist>
</member> </member>
<member kind="signal">
<type>void</type>
<name>flightPathVisibilityChanged</name>
<anchorfile>classSimulScene.html</anchorfile>
<anchor>8cb739462a0a96f444f046187e3f09c3</anchor>
<arglist>(bool visible)</arglist>
</member>
<member kind="function"> <member kind="function">
<type></type> <type></type>
<name>SimulScene</name> <name>SimulScene</name>
@@ -1729,8 +1980,8 @@
<type>double</type> <type>double</type>
<name>getPowerAt</name> <name>getPowerAt</name>
<anchorfile>classSimulScene.html</anchorfile> <anchorfile>classSimulScene.html</anchorfile>
<anchor>31ffa4052da42a3b5b193e9dde0e1e1c</anchor> <anchor>a50c6c3080a5103b0c404a8eb903fdfc</anchor>
<arglist>(QPointF point, double charge, char xy)</arglist> <arglist>(QPointF point, double charge, double speedX, double speedY, char xy)</arglist>
</member> </member>
<member kind="function"> <member kind="function">
<type>QWidget *</type> <type>QWidget *</type>
@@ -1739,6 +1990,13 @@
<anchor>db0106ca0245b674a71c50c93e901df3</anchor> <anchor>db0106ca0245b674a71c50c93e901df3</anchor>
<arglist>() const </arglist> <arglist>() const </arglist>
</member> </member>
<member kind="function">
<type>bool</type>
<name>getFlightPathShouldBeVisible</name>
<anchorfile>classSimulScene.html</anchorfile>
<anchor>c54f4ebbd92179d82efe817fe3a6060d</anchor>
<arglist>() const </arglist>
</member>
<member kind="function" protection="protected"> <member kind="function" protection="protected">
<type>void</type> <type>void</type>
<name>mousePressEvent</name> <name>mousePressEvent</name>
@@ -1802,6 +2060,13 @@
<anchor>cc0c5530431faa20ed6334ff621b7f19</anchor> <anchor>cc0c5530431faa20ed6334ff621b7f19</anchor>
<arglist></arglist> <arglist></arglist>
</member> </member>
<member kind="variable" protection="private">
<type>bool</type>
<name>flightPathShouldBeVisible</name>
<anchorfile>classSimulScene.html</anchorfile>
<anchor>47000919efbe8cd348cdaffdbd35fabe</anchor>
<arglist></arglist>
</member>
<member kind="variable" protection="private"> <member kind="variable" protection="private">
<type>SceneMode</type> <type>SceneMode</type>
<name>myMode</name> <name>myMode</name>
@@ -1879,6 +2144,13 @@
<anchor>fbc2ba594bd06cb4581d4c649ddf9efb</anchor> <anchor>fbc2ba594bd06cb4581d4c649ddf9efb</anchor>
<arglist></arglist> <arglist></arglist>
</member> </member>
<member kind="variable" protection="private">
<type>QGraphicsPathItem *</type>
<name>pathItem1</name>
<anchorfile>classSimulScene.html</anchorfile>
<anchor>fad34d48dea97fe1050a503fa07c2c97</anchor>
<arglist></arglist>
</member>
<member kind="variable" protection="private"> <member kind="variable" protection="private">
<type>resizeRects</type> <type>resizeRects</type>
<name>reRects</name> <name>reRects</name>

View File

@@ -94,12 +94,16 @@ void GraphicsEllipseItem::calculateProbePath(QPointF startPoint) {
//startpunkt in den Pfad setzen //startpunkt in den Pfad setzen
flightPath = QPainterPath(startPoint); flightPath = QPainterPath(startPoint);
int debugTime = 0;
time_t start_time = time(0);
for(int i = 1; i< steps;++i) { 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) ) ); double myMasse = getMasse( sqrt( speedListX->at(i-1)*speedListX->at(i-1) + speedListY->at(i-1)*speedListY->at(i-1) ) );
//qDebug()<< myMasse; //qDebug()<< myMasse;
time_t timeb = time(0);
double powerX = myScene->getPowerAt(currProbePath->at(i-1), charge, speedListX->at(i-1),speedListY->at(i-1), 'x'); double powerX = myScene->getPowerAt(currProbePath->at(i-1), charge, speedListX->at(i-1),speedListY->at(i-1), 'x');
double powerY = myScene->getPowerAt(currProbePath->at(i-1), charge, speedListX->at(i-1),speedListY->at(i-1), 'y'); double powerY = myScene->getPowerAt(currProbePath->at(i-1), charge, speedListX->at(i-1),speedListY->at(i-1), 'y');
time_t timea = time(0);
debugTime += difftime(timea,timeb);
double newspeedX = speedListX->at(i-1) + (powerX/myMasse * (timePerStep/1000.0)); double newspeedX = speedListX->at(i-1) + (powerX/myMasse * (timePerStep/1000.0));
double newspeedY = speedListY->at(i-1) + (powerY/myMasse * (timePerStep/1000.0)); double newspeedY = speedListY->at(i-1) + (powerY/myMasse * (timePerStep/1000.0));
@@ -121,15 +125,17 @@ void GraphicsEllipseItem::calculateProbePath(QPointF startPoint) {
currProbePath->append(newPoint); currProbePath->append(newPoint);
speedListX->append(newspeedX); speedListX->append(newspeedX);
speedListY->append(newspeedY); speedListY->append(newspeedY);
/*if(i%10 == 0)*/ flightPath.lineTo(newPoint); flightPath.lineTo(newPoint);
} }
qDebug()<< difftime(time(0),start_time);
qDebug()<< debugTime;
qDebug()<< "Probe Path: " <<*currProbePath; //qDebug()<< "Probe Path: " <<*currProbePath;
qDebug()<< "speed x: "<<*speedListX; //qDebug()<< "speed x: "<<*speedListX;
qDebug()<< "speed y: "<<*speedListY; //qDebug()<< "speed y: "<<*speedListY;
qDebug()<<speedListY->at(12); //qDebug()<<speedListY->at(12);
//qDebug()<<"power x: "<< (double)myScene->getPowerAt(QPointF(0,0), charge, 'x'); //qDebug()<<"power x: "<< (double)myScene->getPowerAt(QPointF(0,0), charge, 'x');
//qDebug()<<"power y: " << (double)myScene->getPowerAt(QPointF(0,0), charge, 'y'); //qDebug()<<"power y: " << (double)myScene->getPowerAt(QPointF(0,0), charge, 'y');
@@ -137,7 +143,7 @@ void GraphicsEllipseItem::calculateProbePath(QPointF startPoint) {
double GraphicsEllipseItem::getMasse(double speed) { double GraphicsEllipseItem::getMasse(double speed) {
if(speed == 0) return masse; if(speed < SPEED_OF_LIGHT/10.0) return masse;
else { else {
return masse / (sqrt(1- ( (speed/SPEED_OF_LIGHT)*(speed/SPEED_OF_LIGHT)))); return masse / (sqrt(1- ( (speed/SPEED_OF_LIGHT)*(speed/SPEED_OF_LIGHT))));

View File

@@ -54,7 +54,8 @@ QRectF HomoBFieldItem::getRectF() const
} }
void HomoBFieldItem::paint(QPainter* painter, const QStyleOptionGraphicsItem* option, QWidget* widget) { void HomoBFieldItem::paint(QPainter* painter, const QStyleOptionGraphicsItem* option, QWidget* widget) {
Qt::GlobalColor linecolor = Qt::red; //Qt::GlobalColor linecolor = Qt::red;
QColor linecolor(92,105,118);
painter->setPen(linecolor); painter->setPen(linecolor);
if (isSelected()) painter->setBrush(Qt::Dense6Pattern); //selection deutlich machen if (isSelected()) painter->setBrush(Qt::Dense6Pattern); //selection deutlich machen
painter->drawRect(sizeRect); painter->drawRect(sizeRect);

View File

@@ -40,7 +40,7 @@
SimulScene::SimulScene ( QObject* parent ) : QGraphicsScene ( parent ) { SimulScene::SimulScene ( QObject* parent ) : QGraphicsScene ( parent ) {
//variablen initialisieren //variablen initialisieren
setTimePerStep(0.00001); setTimePerStep(0.00001);
setSteps(1000); setSteps(21234);
//setMeterPerPx(1/1000.0); //setMeterPerPx(1/1000.0);
setMeterPerPx(1); setMeterPerPx(1);
@@ -52,7 +52,11 @@ SimulScene::SimulScene ( QObject* parent ) : QGraphicsScene ( parent ) {
createResizeRects(); createResizeRects();
//path Item Erstellen //path Item Erstellen
pathItem1 = addPath(QPainterPath()); pathItem1 = addPath(QPainterPath(), QPen(QColor(255,137,11), 1, Qt::SolidLine));
pathItem1->setZValue(100);
//pathItem1->setCacheMode(QGraphicsItem::DeviceCoordinateCache);
setFlightPathVisible();
addLine(0,-298,0,298,QPen(Qt::green, 1, Qt::SolidLine) )->setCacheMode(QGraphicsItem::DeviceCoordinateCache); addLine(0,-298,0,298,QPen(Qt::green, 1, Qt::SolidLine) )->setCacheMode(QGraphicsItem::DeviceCoordinateCache);
@@ -77,7 +81,7 @@ SimulScene::SimulScene ( QObject* parent ) : QGraphicsScene ( parent ) {
ellipse1->setRect(-2,-2,5,5); ellipse1->setRect(-2,-2,5,5);
ellipse1->setPen(Qt::NoPen); ellipse1->setPen(Qt::NoPen);
ellipse1->setBrush(Qt::red); ellipse1->setBrush(Qt::red);
ellipse1->setZValue(1); ellipse1->setZValue(200);
//ellipse1->scale(4,4); //ellipse1->scale(4,4);
ellipse1->setAcceptDrops(true); ellipse1->setAcceptDrops(true);
connect(this,SIGNAL(changed(QList<QRectF>)),ellipse1,SLOT(handleSceneChange(QList<QRectF>))); connect(this,SIGNAL(changed(QList<QRectF>)),ellipse1,SLOT(handleSceneChange(QList<QRectF>)));
@@ -98,14 +102,8 @@ SimulScene::SimulScene ( QObject* parent ) : QGraphicsScene ( parent ) {
} }
void SimulScene::startTimer() { void SimulScene::startTimer() {
timer->setCurrentTime(0); timer->setCurrentTime(0);
ani->clear();
int currSteps = ellipse1->getCurrProbePath()->count();
for (int i=0; i<currSteps; ++i) {
//ani->setPosAt(i/200.0, QPointF(x , 0.5 * ay * pow(( (x/1000) /vx),2) *1000 ));
ani->setPosAt(i/(double)currSteps, ellipse1->getCurrProbePath()->at(i) );
//qDebug()<< getSteps();
}
timer->start(); timer->start();
} }
void SimulScene::stopTimer() { void SimulScene::stopTimer() {
@@ -587,8 +585,24 @@ void SimulScene::setTimePerStep(double time) {
\fn SimulScene::startCalculation() \fn SimulScene::startCalculation()
*/ */
void SimulScene::startCalculation() { void SimulScene::startCalculation() {
pathItem1->setPath(QPainterPath());
ellipse1->calculateProbePath(ellipse1->pos()); ellipse1->calculateProbePath(ellipse1->pos());
pathItem1->setPath(ellipse1->getFlightPath()); pathItem1->setPath(ellipse1->getFlightPath());
//animationspfad berechnen
time_t anitimeb = time(0);
ani->clear();
int currSteps = ellipse1->getCurrProbePath()->count();
int entry_step = ceil(currSteps/2500.0); //jeder entry_step(te) step wird eingetragen
for (int i=0; i<currSteps; ++i) {
if (i%entry_step == 0 || i==currSteps) {
ani->setPosAt(i/(double)currSteps, ellipse1->getCurrProbePath()->at(i) );
}
//qDebug()<< getSteps();
}
time_t anitimea = time(0);
qDebug()<< "animationszeit" <<difftime(anitimea,anitimeb);
} }

View File

@@ -73,6 +73,7 @@ class SimulScene : public QGraphicsScene {
double getMeterPerPx() const; double getMeterPerPx() const;
void setFlightPathVisible(bool visible = true); void setFlightPathVisible(bool visible = true);
private slots: private slots:
void displayResizeRects(bool move = false); void displayResizeRects(bool move = false);
///does the same as displayResizeRects(true) ///does the same as displayResizeRects(true)