From d010d19495289fd788e926114472e012275605a1 Mon Sep 17 00:00:00 2001 From: Ladd Date: Thu, 1 Jan 2026 00:00:44 -0600 Subject: [PATCH] fixed display vectors --- Readme.md | 6 +----- gravity-simulator-4.png | Bin 0 -> 105953 bytes object.js | 23 +++++++++++------------ sim-options.js | 11 +++++------ system.js | 11 +++-------- tool/utility.js | 22 ---------------------- tool/zoom.js | 27 +++++++++++++++++++++++---- 7 files changed, 43 insertions(+), 57 deletions(-) create mode 100644 gravity-simulator-4.png diff --git a/Readme.md b/Readme.md index 1ff4a50..83466e1 100644 --- a/Readme.md +++ b/Readme.md @@ -8,8 +8,7 @@ Uses `npm` for `eslint`. Screenshots ----------- -![A small body orbiting a pair of larger ones](./gravity-simulator-2.png "Gravity Simulator Screenshot 2") -![A body orbiting a pair, all three of similar size](./gravity-simulator-3.png "Gravity Simulator Screenshot 3") +![A binary pair orbiting a larger partner](./gravity-simulator-4.png "Gravity Simulator Screenshot 4") TODO ---- @@ -31,10 +30,7 @@ TODO - [ ] Undo "Clear Traces" Action - [ ] Undo "Reset - [ ] Time Control: Reverse Time -- [x] Save to LocalStorage - [ ] Lossy Rescaling To Widen Zoom (Handling overflow/underflow) - [ ] Track farthest reaches, min/max in each dimension (x, y) -- [x] Compute Net Angular Momentum -- [ ] Display Net Angular Momentum - [ ] Calculate Work as FxD as measure of energy flux - [ ] Option to automatically slow time when energy flux is greater diff --git a/gravity-simulator-4.png b/gravity-simulator-4.png new file mode 100644 index 0000000000000000000000000000000000000000..5aa1d5326026c5e8f64a3d1db4c39c5874d2ae10 GIT binary patch literal 105953 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 U)fJoT2KdNIDM|i$q5tK707P=Do&W#< literal 0 HcmV?d00001 diff --git a/object.js b/object.js index b958804..ef49ff6 100644 --- a/object.js +++ b/object.js @@ -180,22 +180,19 @@ export class MassObject { let velocity = {x: vx, y: vy}; if (isSelected) { const pointerV = this.sim.pointer.latestVelocity; - const scale = this.sim.display.scale; // const panning = this.sim.panning?.velocity ?? {x: 0, y: 0}; // velocity.x = vx + (pointerV.x + panning.x) * scale; // velocity.y = vy + (pointerV.y + panning.y) * scale; - velocity.x = vx + pointerV.x * scale; - velocity.y = vy + pointerV.y * scale; + velocity.x = vx + pointerV.x / this.sim.timeScale; + velocity.y = vy + pointerV.y / this.sim.timeScale; } - const speed = Math.sqrt(velocity.x ** 2, velocity.y ** 2); + const speed = Math.sqrt(velocity.x ** 2, velocity.y ** 2) / this.sim.display.scale; const arrowDirection = Math.atan2(velocity.y, velocity.x); // Prevent negative numbers by adding 1 - const arrowLength = Math.log(speed + 1) * vecScale; + // TODO: Make logarithmic vector length scale optional + const arrowLength = Math.log10(speed + 1) * vecScale + radius; const endVx = x + arrowLength * Math.cos(arrowDirection); const endVy = y + arrowLength * Math.sin(arrowDirection); - if (sim.getOption('debug.panningInfo')) { - console.log('velocity', {vecScale, isSelected, velocity, speed, arrowDirection, arrowLength, endVx, endVy}); - } const style = VELOCITY_VECTOR_COLOR === 'object color' ? `rgb(${r}, ${g}, ${b})` : VELOCITY_VECTOR_COLOR; sim.display.drawArrow(x, y, endVx, endVy, { @@ -209,11 +206,13 @@ export class MassObject { // Draw arrow for acceleration if (sim.getOption('display.acceleration')) { - const vecScale = this.sim.getOption('param.accelerationScale'); - const accelerationMagnitude = Math.sqrt(acceleration.x ** 2 + acceleration.y ** 2); + const vecScale = this.sim.getOption('display.accelerationScale'); + const accelerationMagnitude = Math.sqrt(acceleration.x ** 2 + acceleration.y ** 2) / + this.sim.display.scale; const arrowDirection = Math.atan2(acceleration.y, acceleration.x); - // Prevent negative numbers by adding e - const arrowLength = Math.log(accelerationMagnitude + 1) * vecScale / this.sim.display.scale; + // Prevent negative numbers by adding 1 + const arrowLength = Math.log10(accelerationMagnitude + 1) * vecScale + radius; + //const arrowLength = accelerationMagnitude * vecScale; const endAx = x + arrowLength * Math.cos(arrowDirection); const endAy = y + arrowLength * Math.sin(arrowDirection); const style = ACCELERATION_VECTOR_COLOR === 'object color' ? diff --git a/sim-options.js b/sim-options.js index dd9dd07..446a312 100644 --- a/sim-options.js +++ b/sim-options.js @@ -4,12 +4,12 @@ export const simOptions = { selection: ['Pause While Selecting', 'boolean', true], }, display: { - traces: ['Path Trace', 'boolean', true], + traces: ['Path Traces', 'boolean', true], dashedTraces: ['Dashed', 'boolean', false, {tall: true}], - velocity: ['Velocity Vector', 'boolean', true], - acceleration: ['Accel Vector', 'boolean', true], - velocityScale: ['Velocity
Vec Scale', 'number', 20], - accelerationScale: ['Accel
Vec Scale', 'number', 20], + velocity: ['Velocity Vectors', 'boolean', true], + acceleration: ['Accel Vectors', 'boolean', true], + velocityScale: ['Velocity
Vec Scale', 'number', 80], + accelerationScale: ['Accel
Vec Scale', 'number', 800], }, collision: { merge: ['Merge Masses
on Collision', 'boolean', true, {wide: true}], @@ -18,7 +18,6 @@ export const simOptions = { gravity: ['Gravity', 'number', 1], timeScale: ['Time Scale', 'number', 0.1], massCreationRate: ['Mass Creation Rate', 'number', 1], - massAcceleration: ['Mass Rate Accel', 'boolean', false, {wide: true}], }, debug: { objectsInfo: ['Objects Info', 'boolean', false], diff --git a/system.js b/system.js index cd57812..c88638e 100644 --- a/system.js +++ b/system.js @@ -157,8 +157,8 @@ export class System { // Convert pointer velocity to simulation scale // Including time scale - if time is slow, our motion is relatively faster const pointer = {...this.sim.pointer.latestVelocity}; - obj.velocity.x = pointer.x / this.sim.display.scale; - obj.velocity.y = pointer.y / this.sim.display.scale; + obj.velocity.x = pointer.x / this.sim.display.scale / this.sim.timeScale; + obj.velocity.y = pointer.y / this.sim.display.scale / this.sim.timeScale; if (this.sim.panning?.velocity) { obj.velocity.x += this.sim.panning.velocity.x; obj.velocity.y += this.sim.panning.velocity.y; @@ -239,12 +239,7 @@ export class System { if (this.creatingObject !== undefined) { const obj = this.objects[this.creatingObject]; - let massCreationRate = this.sim.getOption('param.massCreationRate'); - // Mass creation rate acceleration - if (this.sim.getOption('param.massAcceleration')) { - // TODO: Separate parameter for mass creation acceleration rate - massCreationRate *= obj.rawAge; - } + let massCreationRate = this.sim.getOption('param.massCreationRate') / this.sim.display.scale; // Keep consistent time scale obj.mass += massCreationRate * elapsedTime / this.sim.timeScale; } diff --git a/tool/utility.js b/tool/utility.js index 46dccd6..ae5a5d3 100644 --- a/tool/utility.js +++ b/tool/utility.js @@ -39,7 +39,6 @@ export class UtilityTool extends Tool { constructor(container) { super(container); - const zeroVelocity = document.createElement('button'); const clearTraces = document.createElement('button'); const currentTime = document.createElement('button'); const clearDebug = document.createElement('button'); @@ -47,39 +46,18 @@ export class UtilityTool extends Tool { this.currentTimeEl = currentTime; this.div.appendChild(currentTime); - this.div.appendChild(zeroVelocity); this.div.appendChild(clearTraces); this.div.appendChild(clearDebug); - zeroVelocity.classList.add(WIDE_CLASSNAME); clearTraces.classList.add(WIDE_CLASSNAME); currentTime.classList.add(TOOL_INFO_CLASSNAME); currentTime.classList.add(WIDE_CLASSNAME); clearDebug.classList.add(WIDE_CLASSNAME); - zeroVelocity.innerHTML = 'Zero Momentum'; clearTraces.innerHTML = 'Clear Traces'; currentTime.innerHTML = this.timeText; clearDebug.innerHTML = 'Clear Debug'; - zeroVelocity.addEventListener('click', () => { - // Determine center of mass and average momentum - const { totalMass, netMomentum } = this.sim.system.computeSystemCenter(); - const netVelocity = { - x: netMomentum.x / totalMass, - y: netMomentum.y / totalMass, - }; - - // Apply offset to all object velocities - this.sim.system.forEachObject(obj => { - obj.velocity.x -= netVelocity.x; - obj.velocity.y -= netVelocity.y; - }); - - // Cancel panning - this.sim.panning = undefined; - }); - clearTraces.addEventListener('click', () => { // Obliterate object histories this.sim.system.forEachObject(obj => { diff --git a/tool/zoom.js b/tool/zoom.js index c4b441b..0175640 100644 --- a/tool/zoom.js +++ b/tool/zoom.js @@ -3,7 +3,6 @@ import { ZOOM_IN_FACTOR, ZOOM_OUT_FACTOR, WIDE_CLASSNAME, - TALL_CLASSNAME, TOOL_INFO_CLASSNAME, } from '../config.js'; @@ -19,21 +18,22 @@ export class Zoom extends Tool { const zoomOut = document.createElement('button'); const zoomIn = document.createElement('button'); const zoomAll = document.createElement('button'); + const zeroVelocity = document.createElement('button'); this.div.appendChild(currentScale); this.div.appendChild(zoomOut); this.div.appendChild(zoomIn); this.div.appendChild(zoomAll); + this.div.appendChild(zeroVelocity); currentScale.classList.add(WIDE_CLASSNAME); currentScale.classList.add(TOOL_INFO_CLASSNAME); - zoomAll.classList.add(WIDE_CLASSNAME); - zoomAll.classList.add(TALL_CLASSNAME); currentScale.innerHTML = this.displayScaleText; zoomOut.innerHTML = 'Zoom
Out'; zoomIn.innerHTML = 'Zoom
In'; zoomAll.innerHTML = 'Zoom to Fit'; + zeroVelocity.innerHTML = 'Zero Momentum'; this.sim.onZoom(() => { currentScale.innerHTML = this.displayScaleText; @@ -60,7 +60,7 @@ export class Zoom extends Tool { const y = (box.start.y + box.end.y) / 2; const widthRatio = Math.abs(box.start.x - box.end.x) / this.sim.display.width; const heightRatio = Math.abs(box.start.y - box.end.y) / this.sim.display.height; - const ratio = Math.max(widthRatio, heightRatio) * 2.5; + const ratio = Math.max(widthRatio, heightRatio) * 4; const factor = Math.ceil(Math.log2(1 / ratio)); // Determine average momentum and set panning velocity to match @@ -71,5 +71,24 @@ export class Zoom extends Tool { }; this.sim.scheduleZoom({x, y}, factor, netVelocity) }); + + zeroVelocity.addEventListener('click', () => { + // Determine center of mass and average momentum + const { totalMass, netMomentum } = this.sim.system.computeSystemCenter(); + const netVelocity = { + x: netMomentum.x / totalMass, + y: netMomentum.y / totalMass, + }; + + // Apply offset to all object velocities + this.sim.system.forEachObject(obj => { + obj.velocity.x -= netVelocity.x; + obj.velocity.y -= netVelocity.y; + }); + + // Cancel panning + this.sim.panning = undefined; + }); + } }