diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/client/views/nodes/PhysicsBox/PhysicsSimulationBox.tsx | 43 | ||||
-rw-r--r-- | src/client/views/nodes/PhysicsBox/PhysicsSimulationWeight.tsx | 15 |
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> )} }; |