aboutsummaryrefslogtreecommitdiff
path: root/src/client/views/nodes/PhysicsBox/PhysicsSimulationBox.tsx
diff options
context:
space:
mode:
Diffstat (limited to 'src/client/views/nodes/PhysicsBox/PhysicsSimulationBox.tsx')
-rw-r--r--src/client/views/nodes/PhysicsBox/PhysicsSimulationBox.tsx39
1 files changed, 19 insertions, 20 deletions
diff --git a/src/client/views/nodes/PhysicsBox/PhysicsSimulationBox.tsx b/src/client/views/nodes/PhysicsBox/PhysicsSimulationBox.tsx
index 143ff9896..5335fc1ec 100644
--- a/src/client/views/nodes/PhysicsBox/PhysicsSimulationBox.tsx
+++ b/src/client/views/nodes/PhysicsBox/PhysicsSimulationBox.tsx
@@ -141,8 +141,10 @@ export default class PhysicsSimulationBox extends ViewBoxAnnotatableComponent<Fi
this.dataDoc.simulationSpeed = this.dataDoc.simulationSpeed ?? 2;
this.dataDoc.simulationType = this.dataDoc.simulationType ?? "Inclined Plane";
this.dataDoc.startForces = this.dataDoc.startForces ?? [];
- this.dataDoc.startPosX = this.dataDoc.startPosX ?? 0;
- this.dataDoc.startPosY = this.dataDoc.startPosY ?? 0;
+ this.dataDoc.startPosX = this.dataDoc.startPosX ?? Math.round((this.xMax * 0.5 - 200) * 10) / 10;
+ this.dataDoc.startPosY = this.dataDoc.startPosY ?? this.getDisplayYPos(
+ (400 - this.radius) * Math.tan((26 * Math.PI) / 180) + Math.sqrt(26)
+ );
this.dataDoc.startVelX = this.dataDoc.startVelX ?? 0;
this.dataDoc.startVelY = this.dataDoc.startVelY ?? 0;
this.dataDoc.stepNumber = this.dataDoc.stepNumber ?? 0;
@@ -209,6 +211,16 @@ export default class PhysicsSimulationBox extends ViewBoxAnnotatableComponent<Fi
this.dataDoc.mass2 = this.dataDoc.mass2 ?? 1;
// Setup simulation
+ this.setupSimulation()
+ }
+
+ componentDidUpdate() {
+ this.xMax = this.layoutDoc._width*0.7 ?? 700;
+ this.yMax = this.layoutDoc._height*0.7 ?? 700;
+ this.radius = 0.05*this.layoutDoc._height ?? 50;
+ }
+
+ setupSimulation = () => {
if (this.dataDoc.simulationType != "Circular Motion") {
this.dataDoc.startVelX = 0;
this.dataDoc.setStartVelY = 0;
@@ -365,18 +377,6 @@ export default class PhysicsSimulationBox extends ViewBoxAnnotatableComponent<Fi
// }
this.dataDoc.simulationReset = (!this.dataDoc.simulationReset);
}
-
-
- console.log("width: ", this.xMax)
- console.log("height: ", this.yMax)
- }
-
- componentDidUpdate() {
- this.xMax = this.layoutDoc._width*0.7 ?? 700;
- this.yMax = this.layoutDoc._height*0.7 ?? 700;
- this.radius = 0.05*this.layoutDoc._height ?? 50;
- console.log("width: ", this.xMax)
- console.log("height: ", this.yMax)
}
// Helper function to go between display and real values
@@ -1270,9 +1270,9 @@ export default class PhysicsSimulationBox extends ViewBoxAnnotatableComponent<Fi
<div
style={{
position: "fixed",
- left: "10vw",
- top: "95vh",
- width: "50vw",
+ left: 0.10*this.layoutDoc._width + "px",
+ top: 0.95*this.layoutDoc._height + "px",
+ width: 0.50*this.layoutDoc._width + "px",
}}
>
<LinearProgress />
@@ -1290,7 +1290,7 @@ export default class PhysicsSimulationBox extends ViewBoxAnnotatableComponent<Fi
value={this.dataDoc.simulationType}
onChange={(event) => {
this.dataDoc.simulationType = (event.target.value);
- // TODO change simulation type based on mode/type
+ this.setupSimulation()
}}
style={{ height: "2em", width: "100%", fontSize: "16px" }}
>
@@ -1458,8 +1458,7 @@ export default class PhysicsSimulationBox extends ViewBoxAnnotatableComponent<Fi
value={this.dataDoc.mode}
onChange={(event) => {
this.dataDoc.mode = (event.target.value);
-
- // TODO setup simulation based on type and mode
+ this.setupSimulation()
}}
style={{ height: "2em", width: "100%", fontSize: "16px" }}
>