Work Calculation

Work Calculation Calculator & Guide – Physics Explained :root { –primary-color: #004a99; –background-color: #f8f9fa; –card-background: #ffffff; –text-color: #333333; –border-color: #dee2e6; –shadow-color: rgba(0, 0, 0, 0.1); } body { font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif; background-color: var(–background-color); color: var(–text-color); margin: 0; padding: 0; line-height: 1.6; } .container { max-width: 960px; margin: 20px auto; padding: 20px; background-color: var(–card-background); border-radius: 8px; box-shadow: 0 2px 10px var(–shadow-color); } h1, h2, h3 { color: var(–primary-color); text-align: center; margin-bottom: 1.5em; } h1 { font-size: 2.5em; } h2 { font-size: 1.8em; margin-top: 1.5em; } h3 { font-size: 1.4em; margin-top: 1.2em; } .calculator-section { margin-bottom: 40px; padding: 30px; border: 1px solid var(–border-color); border-radius: 8px; background-color: var(–card-background); box-shadow: 0 2px 8px var(–shadow-color); } .calculator-section h2 { margin-top: 0; margin-bottom: 1.5em; } .loan-calc-container { display: flex; flex-direction: column; gap: 20px; } .input-group { display: flex; flex-direction: column; gap: 8px; } .input-group label { font-weight: bold; color: var(–primary-color); } .input-group input[type="number"], .input-group select { padding: 12px; border: 1px solid var(–border-color); border-radius: 4px; font-size: 1em; box-sizing: border-box; } .input-group input[type="number"]:focus, .input-group select:focus { outline: none; border-color: var(–primary-color); box-shadow: 0 0 0 2px rgba(0, 74, 153, 0.2); } .input-group .helper-text { font-size: 0.85em; color: #6c757d; } .error-message { color: #dc3545; font-size: 0.85em; margin-top: 4px; min-height: 1.2em; /* Reserve space to prevent layout shifts */ } .button-group { display: flex; flex-wrap: wrap; gap: 15px; justify-content: center; margin-top: 25px; } button { padding: 12px 25px; border: none; border-radius: 5px; cursor: pointer; font-size: 1em; font-weight: bold; transition: background-color 0.3s ease, transform 0.2s ease; background-color: var(–primary-color); color: white; } button:hover { background-color: #003366; transform: translateY(-1px); } button.secondary { background-color: #6c757d; } button.secondary:hover { background-color: #5a6268; } #result { margin-top: 30px; padding: 20px; background-color: #e9ecef; border: 1px solid var(–border-color); border-radius: 8px; text-align: center; box-shadow: inset 0 1px 5px rgba(0,0,0,0.05); } #result h3 { margin-top: 0; color: var(–primary-color); font-size: 1.6em; } #result .main-result { font-size: 2.5em; font-weight: bold; color: var(–primary-color); margin: 10px 0; } #result .intermediate-values div, #result .formula-explanation { margin-top: 15px; font-size: 1.1em; } #result .intermediate-values span { font-weight: bold; color: var(–primary-color); } .table-container { overflow-x: auto; margin-top: 30px; border: 1px solid var(–border-color); border-radius: 8px; box-shadow: 0 2px 8px var(–shadow-color); } table { width: 100%; border-collapse: collapse; background-color: var(–card-background); } caption { font-size: 1.2em; font-weight: bold; color: var(–primary-color); padding: 15px 0; text-align: left; caption-side: top; } th, td { padding: 12px 15px; text-align: right; border-bottom: 1px solid var(–border-color); } th { background-color: #f1f3f5; color: var(–primary-color); font-weight: bold; text-align: center; } td { text-align: right; } tr:last-child td { border-bottom: none; } .chart-container { margin-top: 30px; padding: 20px; background-color: var(–card-background); border: 1px solid var(–border-color); border-radius: 8px; box-shadow: 0 2px 8px var(–shadow-color); text-align: center; } .chart-container canvas { max-width: 100%; height: auto; } .chart-caption { font-size: 1.1em; color: var(–primary-color); margin-top: 15px; font-weight: bold; } .article-content { margin-top: 40px; padding: 30px; background-color: var(–card-background); border: 1px solid var(–border-color); border-radius: 8px; box-shadow: 0 2px 8px var(–shadow-color); } .article-content p { margin-bottom: 1.2em; } .article-content ul { margin-left: 20px; margin-bottom: 1.2em; } .article-content li { margin-bottom: 0.5em; } .article-content a { color: var(–primary-color); text-decoration: none; } .article-content a:hover { text-decoration: underline; } .faq-section { margin-top: 30px; } .faq-section h3 { cursor: pointer; position: relative; padding-right: 25px; } .faq-section h3::after { content: '+'; position: absolute; right: 0; font-size: 1.2em; color: var(–primary-color); } .faq-section h3.active::after { content: '-'; } .faq-section .answer { display: none; margin-top: 10px; padding-left: 15px; border-left: 3px solid var(–primary-color); margin-bottom: 1.5em; } .related-tools ul { list-style: none; padding: 0; } .related-tools li { margin-bottom: 15px; } .related-tools a { font-weight: bold; } @media (min-width: 768px) { .loan-calc-container { flex-direction: row; flex-wrap: wrap; justify-content: center; } .input-group { flex: 1 1 45%; /* Allow inputs to take up roughly half the width */ min-width: 200px; } .button-group { justify-content: center; } } @media (max-width: 767px) { h1 { font-size: 2em; } h2 { font-size: 1.5em; } .container { margin: 10px; padding: 15px; } .calculator-section, .article-content { padding: 20px 15px; } button { width: 100%; margin-bottom: 10px; } .input-group { flex-basis: 100%; } #result .main-result { font-size: 2em; } }

Work Calculation: Understand Physics and Energy Transfer

Work Calculation Calculator

Enter the magnitude of the force in Newtons (N).
Enter the distance the object moved in meters (m).
Enter the angle between the force and displacement in degrees (0° to 90°).

Calculation Results

Force Component: —
Work Done Unit: —
Energy Transfer: —
Work (W) = Force (F) × Distance (d) × cos(θ)

What is Work Calculation?

In physics, "work" is a fundamental concept that quantifies the energy transferred when a force causes an object to move over a distance. It's not just about exerting effort; it's about the force acting in the direction of motion. When you push a box across the floor, lift a weight, or even when a planet orbits a star, work is being done. Understanding work calculation is crucial for comprehending energy transformations, efficiency, and the principles governing mechanical systems. This concept bridges the gap between force and energy, providing a measurable outcome of physical interactions.

The definition of work in physics is precise: work is done on an object if a force applied to it causes a displacement, and the force has a component in the direction of the displacement. If no displacement occurs, or if the force is perpendicular to the displacement, no work is done, regardless of how much effort is exerted. This distinction is key to grasping the physics of work calculation. For instance, holding a heavy object stationary requires muscular effort but does no physical work on the object itself because there is no displacement.

Work Calculation Formula and Mathematical Explanation

The primary formula for calculating work done is:
W = F × d × cos(θ)

Where:

  • W represents the Work done, measured in Joules (J). A Joule is the unit of energy and work in the International System of Units (SI).
  • F is the magnitude of the Force applied to the object, measured in Newtons (N).
  • d is the magnitude of the Displacement (the distance the object moves), measured in meters (m).
  • θ (theta) is the angle between the direction of the applied force and the direction of the displacement, measured in degrees or radians.

The cos(θ) term is critical. It accounts for the component of the force that is actually acting in the direction of motion.

  • If the force is applied exactly in the direction of motion (θ = 0°), cos(0°) = 1, so W = F × d. This is the maximum work done for a given force and distance.
  • If the force is applied perpendicular to the motion (θ = 90°), cos(90°) = 0, so W = 0. No work is done.
  • If the force is applied at an angle between 0° and 90°, cos(θ) will be between 0 and 1, meaning only a fraction of the force contributes to the work done.

The result of a work calculation is a measure of energy transferred. If positive work is done, energy is transferred to the object. If negative work is done (force opposes motion), energy is transferred from the object.

Practical Examples (Real-World Use Cases)

Work calculation is fundamental to many real-world scenarios:

  • Lifting an object: When you lift a box of groceries (say, 10 N force) vertically by 1 meter, the work done is W = 10 N × 1 m × cos(0°) = 10 Joules. The force you apply is against gravity, and the displacement is upwards.
  • Pushing a cart: Imagine pushing a shopping cart with a force of 30 N at an angle of 30° to the horizontal, and the cart moves 5 meters. The work done is W = 30 N × 5 m × cos(30°) ≈ 30 × 5 × 0.866 ≈ 129.9 Joules. Only the horizontal component of your push contributes to the work.
  • Car engine: The engine exerts a force to move the car. The work done by the engine is what propels the car forward, overcoming friction and air resistance. If the engine provides a force of 2000 N and moves the car 100 meters on a level road (assuming force is parallel to displacement), the work done is 2000 N × 100 m = 200,000 Joules (or 200 kJ).
  • Inclined Plane: When pulling a crate up an inclined plane, the force applied is often at an angle to the horizontal. Calculating the work done requires considering the component of force parallel to the plane and the distance moved along the plane. For example, applying a force of 150 N at 20° to the plane to move a crate 8 meters up the plane results in W = 150 N × 8 m × cos(20°) ≈ 150 × 8 × 0.94 ≈ 1128 Joules.

These examples highlight how the work calculation formula helps quantify energy transfer in everyday physical activities and mechanical processes. Understanding this concept is key to fields like engineering, sports science, and even understanding basic mechanics.

How to Use This Work Calculation Calculator

Our Work Calculation Calculator is designed for simplicity and accuracy. Follow these steps to determine the work done:

  1. Enter the Force Applied: Input the magnitude of the force acting on the object in Newtons (N) into the "Force Applied" field.
  2. Enter the Distance Moved: Provide the distance the object traveled in meters (m) in the "Distance Moved" field.
  3. Specify the Angle: Enter the angle in degrees between the direction of the applied force and the direction of the object's displacement. If the force is directly in the direction of motion, use 0°. If the force is perpendicular, use 90°.
  4. Calculate: Click the "Calculate Work" button.

The calculator will instantly display:

  • Work Done (Joules): The primary result, showing the total work done in Joules.
  • Force Component (N): The component of the applied force that is parallel to the displacement.
  • Work Done Unit: Confirms the unit of work is Joules (J).
  • Energy Transfer: A brief explanation of whether energy is being added to or removed from the object.

Use the "Reset" button to clear all fields and start over. The "Copy Results" button allows you to easily save or share the calculated values and assumptions.

Key Factors That Affect Work Calculation Results

Several factors influence the outcome of a work calculation:

  • Magnitude of Force: A larger force, applied in the direction of motion, results in more work done.
  • Magnitude of Displacement: The greater the distance an object moves while a force is applied, the more work is done.
  • Angle Between Force and Displacement: This is crucial. A force acting perpendicular to the displacement does no work. The closer the force aligns with the direction of motion, the more work is done.
  • Direction of Force Relative to Motion: If the force opposes the motion (e.g., friction), it does negative work, removing energy from the object.
  • Units Consistency: Ensure all inputs are in the correct SI units (Newtons for force, meters for distance) to obtain the result in Joules. Inconsistent units will lead to incorrect calculations.

Understanding these factors helps in accurately applying the work calculation formula and interpreting the results in various physical contexts.

Frequently Asked Questions (FAQ)

What is the difference between work and energy?

Energy is the capacity to do work. Work is the actual transfer of energy that occurs when a force moves an object over a distance. Work is a process, while energy is a state or quantity.

When is work done equal to zero?

Work is done equal to zero in two main scenarios: 1) When there is no displacement (the object doesn't move). 2) When the applied force is perpendicular (90 degrees) to the direction of displacement.

What are the units of work?

The standard unit of work in the International System of Units (SI) is the Joule (J). One Joule is defined as the work done when a force of one Newton moves an object one meter in the direction of the force.

Does holding a heavy object count as work?

In physics, no. While your muscles are exerting force and getting tired (biological work), no physical work is done on the object itself because there is no displacement. The force you apply is perpendicular to any potential motion if you were to move it.

What if the force is in the opposite direction of motion?

If the force is in the opposite direction of motion (e.g., friction acting against a moving object), the angle θ is 180 degrees. Since cos(180°) = -1, the work done is negative (W = -F × d). This signifies that energy is being removed from the object.

Related Tools and Internal Resources

© 2023 Physics Calculators. All rights reserved.

var chartInstance = null; // Global variable to hold chart instance function getElement(id) { return document.getElementById(id); } function validateInput(value, id, errorId, min = -Infinity, max = Infinity, allowZero = true) { var errorElement = getElement(errorId); errorElement.textContent = "; // Clear previous error if (value === ") { errorElement.textContent = 'This field cannot be empty.'; return false; } var numValue = parseFloat(value); if (isNaN(numValue)) { errorElement.textContent = 'Please enter a valid number.'; return false; } if (!allowZero && numValue === 0) { errorElement.textContent = 'Value cannot be zero.'; return false; } if (numValue max) { errorElement.textContent = 'Value cannot be greater than ' + max + '.'; return false; } return true; } function calculateWork() { var forceInput = getElement('force'); var distanceInput = getElement('distance'); var angleInput = getElement('angle'); var forceError = getElement('forceError'); var distanceError = getElement('distanceError'); var angleError = getElement('angleError'); var isValid = true; if (!validateInput(forceInput.value, 'force', 'forceError', 0, Infinity, false)) isValid = false; if (!validateInput(distanceInput.value, 'distance', 'distanceError', 0, Infinity, false)) isValid = false; if (!validateInput(angleInput.value, 'angle', 'angleError', 0, 90)) isValid = false; // Angle between 0 and 90 degrees if (!isValid) { // Clear results if validation fails getElement('workResult').textContent = '–'; getElement('forceComponent').textContent = 'Force Component: –'; getElement('workDoneUnit').textContent = 'Work Done Unit: –'; getElement('energyTransfer').textContent = 'Energy Transfer: –'; return; } var force = parseFloat(forceInput.value); var distance = parseFloat(distanceInput.value); var angleDegrees = parseFloat(angleInput.value); // Convert angle to radians for Math.cos var angleRadians = angleDegrees * (Math.PI / 180); var cosTheta = Math.cos(angleRadians); var work = force * distance * cosTheta; // Intermediate values var forceComponent = force * cosTheta; // Display results getElement('workResult').textContent = work.toFixed(2) + ' J'; getElement('forceComponent').textContent = 'Force Component: ' + forceComponent.toFixed(2) + ' N'; getElement('workDoneUnit').textContent = 'Work Done Unit: Joules (J)'; var energyTransferText = "; if (work > 0) { energyTransferText = 'Energy is transferred TO the object.'; } else if (work < 0) { energyTransferText = 'Energy is transferred FROM the object.'; } else { energyTransferText = 'No net energy transfer.'; } getElement('energyTransfer').textContent = 'Energy Transfer: ' + energyTransferText; updateChart(force, distance, angleDegrees); } function resetCalculator() { getElement('force').value = ''; getElement('distance').value = ''; getElement('angle').value = '0'; getElement('forceError').textContent = ''; getElement('distanceError').textContent = ''; getElement('angleError').textContent = ''; getElement('workResult').textContent = '–'; getElement('forceComponent').textContent = 'Force Component: –'; getElement('workDoneUnit').textContent = 'Work Done Unit: –'; getElement('energyTransfer').textContent = 'Energy Transfer: –'; if (chartInstance) { chartInstance.destroy(); chartInstance = null; } // Optionally re-render a default chart or clear the canvas var canvas = getElement('workChart'); var ctx = canvas.getContext('2d'); ctx.clearRect(0, 0, canvas.width, canvas.height); } function copyResults() { var workResult = getElement('workResult').textContent; var forceComponent = getElement('forceComponent').textContent; var workDoneUnit = getElement('workDoneUnit').textContent; var energyTransfer = getElement('energyTransfer').textContent; var forceInput = getElement('force').value; var distanceInput = getElement('distance').value; var angleInput = getElement('angle').value; var textToCopy = "Work Calculation Results:\n\n"; textToCopy += "Main Result: " + workResult + "\n"; textToCopy += forceComponent + "\n"; textToCopy += workDoneUnit + "\n"; textToCopy += energyTransfer + "\n\n"; textToCopy += "Assumptions:\n"; textToCopy += "Force Applied: " + (forceInput ? forceInput + " N" : "–") + "\n"; textToCopy += "Distance Moved: " + (distanceInput ? distanceInput + " m" : "–") + "\n"; textToCopy += "Angle: " + (angleInput ? angleInput + " degrees" : "–") + "\n"; // Use a temporary textarea to copy text to clipboard var textArea = document.createElement("textarea"); textArea.value = textToCopy; textArea.style.position = "fixed"; // Avoid scrolling to bottom textArea.style.left = "-9999px"; textArea.style.top = "-9999px"; document.body.appendChild(textArea); textArea.focus(); textArea.select(); try { var successful = document.execCommand('copy'); var msg = successful ? 'Results copied!' : 'Copying failed!'; console.log(msg); // Optionally show a temporary message to the user var copyButton = getElement('copyButton'); // Assuming copy button has id="copyButton" if (!copyButton) { // If button doesn't exist, create a temporary one for feedback copyButton = document.createElement('button'); copyButton.textContent = msg; copyButton.style.position = 'fixed'; copyButton.style.bottom = '10px'; copyButton.style.left = '50%'; copyButton.style.transform = 'translateX(-50%)'; copyButton.style.backgroundColor = msg === 'Results copied!' ? 'green' : 'red'; copyButton.style.color = 'white'; copyButton.style.padding = '10px'; copyButton.style.borderRadius = '5px'; document.body.appendChild(copyButton); setTimeout(function() { copyButton.remove(); }, 2000); } else { // If button exists, update its text and style var originalText = copyButton.textContent; var originalBg = copyButton.style.backgroundColor; copyButton.textContent = msg; copyButton.style.backgroundColor = msg === 'Results copied!' ? 'green' : 'red'; setTimeout(function() { copyButton.textContent = originalText; copyButton.style.backgroundColor = originalBg; }, 2000); } } catch (err) { console.error('Fallback: Oops, unable to copy', err); } document.body.removeChild(textArea); } // Charting Logic function updateChart(force, distance, angleDegrees) { var canvas = getElement('workChart'); var ctx = canvas.getContext('2d'); // Clear previous chart if it exists if (chartInstance) { chartInstance.destroy(); } // Prepare data for the chart var labels = []; var forceSeries = []; var workSeries = []; var numPoints = 50; // Number of data points for the chart var angleStep = 90 / numPoints; // Step for angle from 0 to 90 degrees for (var i = 0; i <= numPoints; i++) { var currentAngle = i * angleStep; labels.push(currentAngle.toFixed(0) + '°'); var currentCosTheta = Math.cos(currentAngle * (Math.PI / 180)); var currentForceComponent = force * currentCosTheta; var currentWork = currentForceComponent * distance; forceSeries.push(currentForceComponent); workSeries.push(currentWork); } // Create new chart instance chartInstance = new Chart(ctx, { type: 'line', data: { labels: labels, datasets: [{ label: 'Force Component (N)', data: forceSeries, borderColor: 'rgba(54, 162, 235, 1)', // Blue backgroundColor: 'rgba(54, 162, 235, 0.2)', fill: false, tension: 0.1 }, { label: 'Work Done (J)', data: workSeries, borderColor: 'rgba(255, 99, 132, 1)', // Red backgroundColor: 'rgba(255, 99, 132, 0.2)', fill: false, tension: 0.1 }] }, options: { responsive: true, maintainAspectRatio: false, scales: { x: { title: { display: true, text: 'Angle between Force and Displacement (degrees)' } }, y: { title: { display: true, text: 'Magnitude (N or J)' }, beginAtZero: true } }, plugins: { legend: { position: 'top', }, title: { display: true, text: 'Work Calculation vs. Angle' } } } }); } // Basic Chart.js integration (assuming Chart.js is available globally) // If Chart.js is not available, this part will fail. // For a pure JS solution without external libraries, SVG or Canvas API would be needed. // Since the prompt requires NO external libraries, we'll use Canvas API directly. // Canvas API implementation for the chart function drawCanvasChart(force, distance, angleDegrees) { var canvas = getElement('workChart'); var ctx = canvas.getContext('2d'); ctx.clearRect(0, 0, canvas.width, canvas.height); // Clear canvas var width = canvas.width; var height = canvas.height; var padding = 40; // Determine max values for scaling var maxForceComponent = force; // Max force component is when angle is 0 var maxWork = force * distance; // Max work is when angle is 0 var maxValue = Math.max(maxForceComponent, maxWork); if (maxValue === 0) maxValue = 1; // Avoid division by zero // Draw axes ctx.strokeStyle = '#333'; ctx.lineWidth = 1; ctx.beginPath(); ctx.moveTo(padding, height – padding); // X-axis start ctx.lineTo(width – padding, height – padding); // X-axis end ctx.moveTo(padding, padding); // Y-axis start ctx.lineTo(padding, height – padding); // Y-axis end ctx.stroke(); // Draw labels and ticks ctx.fillStyle = '#333'; ctx.font = '12px Arial'; ctx.textAlign = 'center'; ctx.fillText('0°', padding, height – padding + 15); ctx.fillText('90°', width – padding, height – padding + 15); ctx.textAlign = 'right'; ctx.fillText('0', padding – 5, height – padding); ctx.fillText(maxValue.toFixed(0) + ' J', padding – 5, padding); // Draw data series ctx.lineWidth = 2; var numPoints = 50; var angleStep = 90 / numPoints; // Force Component Series ctx.strokeStyle = 'rgba(54, 162, 235, 1)'; // Blue ctx.beginPath(); for (var i = 0; i <= numPoints; i++) { var currentAngle = i * angleStep; var currentCosTheta = Math.cos(currentAngle * (Math.PI / 180)); var currentForceComponent = force * currentCosTheta; var x = padding + ((width – 2 * padding) * (currentAngle / 90)); var y = height – padding – ((height – 2 * padding) * (currentForceComponent / maxValue)); if (i === 0) { ctx.moveTo(x, y); } else { ctx.lineTo(x, y); } } ctx.stroke(); // Work Done Series ctx.strokeStyle = 'rgba(255, 99, 132, 1)'; // Red ctx.beginPath(); for (var i = 0; i <= numPoints; i++) { var currentAngle = i * angleStep; var currentCosTheta = Math.cos(currentAngle * (Math.PI / 180)); var currentWork = force * distance * currentCosTheta; var x = padding + ((width – 2 * padding) * (currentAngle / 90)); var y = height – padding – ((height – 2 * padding) * (currentWork / maxValue)); if (i === 0) { ctx.moveTo(x, y); } else { ctx.lineTo(x, y); } } ctx.stroke(); // Add legend ctx.textAlign = 'left'; ctx.fillStyle = '#333'; ctx.fillText('Force Component (N)', padding + 10, padding + 15); ctx.fillStyle = 'rgba(54, 162, 235, 1)'; ctx.fillRect(padding + 10, padding + 25, 10, 10); ctx.fillStyle = '#333'; ctx.fillText('Work Done (J)', padding + 10, padding + 40); ctx.fillStyle = 'rgba(255, 99, 132, 1)'; ctx.fillRect(padding + 10, padding + 50, 10, 10); } // Initial chart draw or update on input change function updateChart(force, distance, angleDegrees) { // Ensure the canvas element exists var canvas = getElement('workChart'); if (!canvas) { console.error("Canvas element 'workChart' not found."); return; } // Adjust canvas size based on container var chartContainer = canvas.parentElement; canvas.width = chartContainer.clientWidth * 0.95; // Use most of the container width canvas.height = 300; // Fixed height or make it responsive too drawCanvasChart(force, distance, angleDegrees); } // Initial calculation and chart render on page load document.addEventListener('DOMContentLoaded', function() { // Set default values if inputs are empty on load if (getElement('force').value === '') getElement('force').value = 50; if (getElement('distance').value === '') getElement('distance').value = 10; if (getElement('angle').value === '') getElement('angle').value = 0; calculateWork(); // Perform initial calculation // Add event listeners for real-time updates getElement('force').addEventListener('input', calculateWork); getElement('distance').addEventListener('input', calculateWork); getElement('angle').addEventListener('input', calculateWork); // Initialize FAQ toggles var faqHeaders = document.querySelectorAll('.faq-section h3'); for (var i = 0; i < faqHeaders.length; i++) { faqHeaders[i].addEventListener('click', function() { this.classList.toggle('active'); var answer = this.nextElementSibling; if (answer.style.display === 'block') { answer.style.display = 'none'; } else { answer.style.display = 'block'; } }); } }); function toggleFaq(element) { element.classList.toggle('active'); var answer = element.nextElementSibling; if (answer.style.display === 'block') { answer.style.display = 'none'; } else { answer.style.display = 'block'; } }

Work Calculation Visualization

This chart illustrates how the work done changes with the angle between the applied force and the displacement, given constant force and distance.

Leave a Comment