aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/client/views/nodes/PhysicsBox/PhysicsSimulationBox.tsx43
-rw-r--r--src/client/views/nodes/PhysicsBox/PhysicsSimulationWeight.tsx15
2 files changed, 32 insertions, 26 deletions
diff --git a/src/client/views/nodes/PhysicsBox/PhysicsSimulationBox.tsx b/src/client/views/nodes/PhysicsBox/PhysicsSimulationBox.tsx
index b24591a0d..7efb8b73a 100644
--- a/src/client/views/nodes/PhysicsBox/PhysicsSimulationBox.tsx
+++ b/src/client/views/nodes/PhysicsBox/PhysicsSimulationBox.tsx
@@ -111,7 +111,7 @@ export default class PhysicsSimulationBox extends ViewBoxAnnotatableComponent<Fi
this.layoutDoc._height = 800;
this.xMax = this.layoutDoc._width*0.6;
this.yMax = this.layoutDoc._height*0.9;
- this.radius = 75;
+ this.radius = 60;
this.dataDoc.reviewCoefficient = this.dataDoc.reviewCoefficient ?? 0;
this.dataDoc.questionVariables = this.dataDoc.questionVariables ?? [];
this.dataDoc.accelerationXDisplay = this.dataDoc.accelerationXDisplay ?? 0;
@@ -217,9 +217,12 @@ export default class PhysicsSimulationBox extends ViewBoxAnnotatableComponent<Fi
}
componentDidUpdate() {
- this.xMax = this.layoutDoc._width*0.6;
- this.yMax = this.layoutDoc._height*0.9;
- this.radius = 0.9*this.layoutDoc._height ?? 75;
+ if (this.xMax != this.layoutDoc._width*0.6 || this.yMax != this.layoutDoc._height*0.9) {
+ this.xMax = this.layoutDoc._width*0.6;
+ this.yMax = this.layoutDoc._height*0.9;
+ this.radius = 0.08*this.layoutDoc._height ?? 60;
+ this.dataDoc.simulationReset = (!this.dataDoc.simulationReset);
+ }
}
setupSimulation = (simulationType: string, mode: string) => {
@@ -237,7 +240,7 @@ export default class PhysicsSimulationBox extends ViewBoxAnnotatableComponent<Fi
this.dataDoc.startPosY = (this.yMin + this.radius);
this.dataDoc.startPosX = ((this.xMax + this.xMin) / 2 - this.radius);
this.dataDoc.positionYDisplay = (this.getDisplayYPos(this.yMin + this.radius));
- this.dataDoc.positionXDisplay((this.xMax + this.xMin) / 2 - this.radius);
+ this.dataDoc.positionXDisplay = ((this.xMax + this.xMin) / 2 - this.radius);
this.dataDoc.updatedForces = ([
{
description: "Gravity",
@@ -1001,7 +1004,7 @@ export default class PhysicsSimulationBox extends ViewBoxAnnotatableComponent<Fi
step={1}
unit={"°"}
upperBound={49}
- value={this.dataDoc.wedgeAngle}
+ value={this.dataDoc.wedgeAngle ?? 26}
effect={(val: number) => {
this.changeWedgeBasedOnNewAngle(val);
this.updateReviewForcesBasedOnAngle(val);
@@ -1785,7 +1788,7 @@ export default class PhysicsSimulationBox extends ViewBoxAnnotatableComponent<Fi
step={1}
unit={"x"}
upperBound={10}
- value={this.dataDoc.simulationSpeed}
+ value={this.dataDoc.simulationSpeed ?? 2}
labelWidth={"5em"}
/>
{this.dataDoc.simulationPaused && this.dataDoc.simulationType != "Circular Motion" && (
@@ -1797,7 +1800,7 @@ export default class PhysicsSimulationBox extends ViewBoxAnnotatableComponent<Fi
step={0.01}
unit={"m/s2"}
upperBound={0}
- value={this.dataDoc.gravity}
+ value={this.dataDoc.gravity ?? -9.81}
effect={(val: number) => {
this.dataDoc.resetAll = (!this.dataDoc.resetAll);
}}
@@ -1813,7 +1816,7 @@ export default class PhysicsSimulationBox extends ViewBoxAnnotatableComponent<Fi
step={0.1}
unit={"kg"}
upperBound={5}
- value={this.dataDoc.mass}
+ value={this.dataDoc.mass ?? 1}
effect={(val: number) => {
this.dataDoc.resetAll = (!this.dataDoc.resetAll);
}}
@@ -1829,7 +1832,7 @@ export default class PhysicsSimulationBox extends ViewBoxAnnotatableComponent<Fi
step={0.1}
unit={"kg"}
upperBound={5}
- value={this.dataDoc.mass}
+ value={this.dataDoc.mass ?? 1}
effect={(val: number) => {
this.dataDoc.resetAll = (!this.dataDoc.resetAll);
}}
@@ -1845,7 +1848,7 @@ export default class PhysicsSimulationBox extends ViewBoxAnnotatableComponent<Fi
step={0.1}
unit={"kg"}
upperBound={5}
- value={this.dataDoc.mass2}
+ value={this.dataDoc.mass2 ?? 1}
effect={(val: number) => {
this.dataDoc.resetAll = (!this.dataDoc.resetAll);
}}
@@ -1859,9 +1862,9 @@ export default class PhysicsSimulationBox extends ViewBoxAnnotatableComponent<Fi
dataDoc={this.dataDoc}
prop={'circularMotionRadius'}
step={5}
- unit={"kg"}
+ unit={"m"}
upperBound={250}
- value={this.dataDoc.circularMotionRadius}
+ value={this.dataDoc.circularMotionRadius ?? 100}
effect={(val: number) => {
this.dataDoc.resetAll = (!this.dataDoc.resetAll);
}}
@@ -1882,7 +1885,7 @@ export default class PhysicsSimulationBox extends ViewBoxAnnotatableComponent<Fi
step={1}
unit={"N/m"}
upperBound={500}
- value={this.dataDoc.springConstant}
+ value={this.dataDoc.springConstant ?? 0.5}
effect={(val: number) => {
this.dataDoc.simulationReset(!this.dataDoc.simulationReset);
}}
@@ -1898,7 +1901,7 @@ export default class PhysicsSimulationBox extends ViewBoxAnnotatableComponent<Fi
step={100}
unit={""}
upperBound={500}
- value={this.dataDoc.springRestLength}
+ value={this.dataDoc.springRestLength ?? 200}
effect={(val: number) => {
this.dataDoc.simulationReset = (!this.dataDoc.simulationReset);
}}
@@ -1918,7 +1921,7 @@ export default class PhysicsSimulationBox extends ViewBoxAnnotatableComponent<Fi
step={10}
unit={""}
upperBound={this.dataDoc.springRestLength}
- value={this.dataDoc.springStartLength - this.dataDoc.springRestLength}
+ value={this.dataDoc.springStartLength - this.dataDoc.springRestLength ?? 0}
effect={(val: number) => {
this.dataDoc.startPosY = (this.dataDoc.springRestLength + val);
this.dataDoc.springStartLength = (this.dataDoc.springRestLength + val);
@@ -1940,7 +1943,7 @@ export default class PhysicsSimulationBox extends ViewBoxAnnotatableComponent<Fi
step={1}
unit={"°"}
upperBound={49}
- value={this.dataDoc.wedgeAngle}
+ value={this.dataDoc.wedgeAngle ?? 26}
effect={(val: number) => {
this.changeWedgeBasedOnNewAngle(val);
this.dataDoc.simulationReset = (!this.dataDoc.simulationReset);
@@ -1961,7 +1964,7 @@ export default class PhysicsSimulationBox extends ViewBoxAnnotatableComponent<Fi
step={0.1}
unit={""}
upperBound={1}
- value={this.dataDoc.coefficientOfStaticFriction}
+ value={this.dataDoc.coefficientOfStaticFriction ?? 0}
effect={(val: number) => {
this.updateForcesWithFriction(val);
if (val < Number(this.dataDoc.coefficientOfKineticFriction)) {
@@ -1984,7 +1987,7 @@ export default class PhysicsSimulationBox extends ViewBoxAnnotatableComponent<Fi
step={0.1}
unit={""}
upperBound={Number(this.dataDoc.coefficientOfStaticFriction)}
- value={this.dataDoc.coefficientOfKineticFriction}
+ value={this.dataDoc.coefficientOfKineticFriction ?? 0}
effect={(val: number) => {
this.dataDoc.simulationReset = (!this.dataDoc.simulationReset);
}}
@@ -2022,7 +2025,7 @@ export default class PhysicsSimulationBox extends ViewBoxAnnotatableComponent<Fi
step={1}
unit={"°"}
upperBound={59}
- value={this.dataDoc.pendulumAngle}
+ value={this.dataDoc.pendulumAngle ?? 30}
effect={(value) => {
this.dataDoc.startPendulumAngle = (value);
if (this.dataDoc.simulationType == "Pendulum") {
diff --git a/src/client/views/nodes/PhysicsBox/PhysicsSimulationWeight.tsx b/src/client/views/nodes/PhysicsBox/PhysicsSimulationWeight.tsx
index b973d30c8..7407d6fa6 100644
--- a/src/client/views/nodes/PhysicsBox/PhysicsSimulationWeight.tsx
+++ b/src/client/views/nodes/PhysicsBox/PhysicsSimulationWeight.tsx
@@ -919,6 +919,7 @@ export default class Weight extends React.Component<IWeightProps, IState> {
className="weightContainer"
onPointerDown={(e) => {
if (this.draggable) {
+ console.log('dragging = true')
this.props.dataDoc['paused'] = true;
this.setState({dragging: true});
this.setState({clickPositionX: e.clientX});
@@ -927,6 +928,7 @@ export default class Weight extends React.Component<IWeightProps, IState> {
}}
onPointerMove={(e) => {
if (this.state.dragging) {
+ console.log('dragging')
let newY = this.state.yPosition + e.clientY - this.state.clickPositionY;
if (newY > this.props.yMax - 2 * this.props.radius - 10) {
newY = this.props.yMax - 2 * this.props.radius - 10;
@@ -968,6 +970,7 @@ export default class Weight extends React.Component<IWeightProps, IState> {
}}
onPointerUp={(e) => {
if (this.state.dragging) {
+ console.log('dragging = false')
if (
this.props.dataDoc['simulationType'] != "Pendulum" &&
this.props.dataDoc['simulationType'] != "Suspension"
@@ -1339,7 +1342,7 @@ export default class Weight extends React.Component<IWeightProps, IState> {
position: "absolute",
left: this.state.xPosition + this.props.radius + this.state.xAccel * 3 + 25 + "px",
top: this.state.yPosition + this.props.radius + this.state.yAccel * 3 + 70 + "px",
- lineHeight: 0.5,
+ lineHeight: 1,
}}
>
<p>
@@ -1393,7 +1396,7 @@ export default class Weight extends React.Component<IWeightProps, IState> {
position: "absolute",
left: this.state.xPosition + this.props.radius + this.state.xVelocity * 3 + 25 + "px",
top: this.state.yPosition + this.props.radius + this.state.yVelocity * 3 + "px",
- lineHeight: 0.5,
+ lineHeight: 1,
}}
>
<p>
@@ -1506,7 +1509,7 @@ export default class Weight extends React.Component<IWeightProps, IState> {
position: "absolute",
left: labelLeft + "px",
top: labelTop + "px",
- lineHeight: 0.5,
+ lineHeight: 1,
backgroundColor: this.labelBackgroundColor,
}}
>
@@ -1519,7 +1522,7 @@ export default class Weight extends React.Component<IWeightProps, IState> {
</div>
);
})}
- {/* {!this.state.dragging &&
+ {!this.state.dragging &&
this.props.showForces && this.props.updatedForces &&
this.props.updatedForces.map((force, index) => {
if (force.magnitude < this.epsilon) {
@@ -1615,7 +1618,7 @@ export default class Weight extends React.Component<IWeightProps, IState> {
position: "absolute",
left: labelLeft + "px",
top: labelTop + "px",
- lineHeight: 0.5,
+ lineHeight: 1,
backgroundColor: this.labelBackgroundColor,
}}
>
@@ -1627,7 +1630,7 @@ export default class Weight extends React.Component<IWeightProps, IState> {
</div>
</div>
);
- })} */}
+ })}
</div>
)}
};