Force resolution calculator
The force resolution components calculator converts one force vector into signed horizontal and vertical components.
Run — free
Enter a non-negative magnitude and a direction angle in degrees, measured counterclockwise from the positive horizontal axis. The result uses cosine for the horizontal component and sine for the vertical component, so its signs automatically identify the vector's quadrant. It works with newtons or any consistent force unit because both components retain the magnitude's unit. Negative magnitudes are rejected rather than silently reversing the direction.
Enter magnitude and direction with a clear convention
A force vector needs two pieces of information: its size and its direction. Enter the size as magnitude, using newtons, kilonewtons, pounds-force, or another force unit that is consistent with the rest of your calculation. Enter the angle in degrees, measured counterclockwise from the positive horizontal axis. Under that convention, zero degrees points right, 90 degrees points up, 180 degrees points left, and 270 degrees points down. Angles do not have to stay between zero and 360 because coterminal angles describe the same direction. For example, minus 30 degrees and 330 degrees produce the same pair of components. The calculator requires a non-negative magnitude because magnitude represents size rather than signed direction. If your source gives a negative value, correct the magnitude or describe the reversed vector by adding 180 degrees to its direction. Keeping size and direction separate prevents a negative sign from being interpreted twice and makes the result easier to audit in statics, dynamics, and engineering worksheets. Numeric strings are accepted through the API, but every supplied value must be finite; blank values, infinity, and nonnumeric text are rejected with a clear input error.
Understand the component formulas and signs
The calculator applies the standard rectangular resolution formulas: the horizontal component is the magnitude multiplied by the cosine of the angle, while the vertical component is the magnitude multiplied by the sine of the angle. In symbols, Fx = F cos(theta) and Fy = F sin(theta). Because the angle begins at the positive horizontal axis, cosine controls left or right and sine controls down or up. A positive horizontal result points right; a negative one points left. A positive vertical result points up; a negative one points down. This signed output is more useful than returning absolute values because the components can be inserted directly into equilibrium sums or motion equations. At axis-aligned directions, floating-point trigonometry can create tiny remnants such as 0.000000000000006 instead of exact zero. The calculator normalizes negligible residues and rounds results deterministically, which makes displayed values and automated comparisons stable. You can verify the resolution by checking that the square root of Fx squared plus Fy squared equals the original magnitude, apart from ordinary rounding. This relationship follows from the Pythagorean identity for sine and cosine and provides a quick way to detect an incorrectly measured angle.
Use resolved forces in practical calculations
Resolved components let you replace an angled force with two perpendicular forces that have exactly the same combined effect. In a free-body diagram, place the horizontal component along the x-axis and the vertical component along the y-axis, then combine each with other forces acting on that axis. This is useful when finding the net force on a pulled crate, separating cable tension into support reactions, or analyzing thrust and drag in a chosen coordinate system. The returned components use the same unit as the entered magnitude, so a magnitude in newtons produces components in newtons and a magnitude in pounds-force produces components in pounds-force. Do not mix those components with values in another unit until you convert them. Also confirm that your problem uses the same angle reference. Some diagrams measure an angle from the vertical axis or clockwise from horizontal; convert that angle to the calculator's counterclockwise-from-positive-horizontal convention before entering it. The result resolves one force only and does not automatically sum multiple vectors, calculate acceleration, or infer a missing magnitude. For multiple forces, resolve each vector separately and add all horizontal results together and all vertical results together. Those two totals form the net-force vector used in Newton's second law or static equilibrium equations.
What you can do with it
Resolve a pulling force
Find the forward and upward portions of an angled handle or rope force before calculating friction and normal force.
Analyze cable tension
Split a tension force into signed axis components for a support reaction or equilibrium calculation.
Build a free-body diagram
Convert an oblique force into x and y terms that can be added to other forces along the same axes.
FAQ
What does the calculator cost?
It is free to run in your browser, and an API request costs $0.002.
How is the angle measured?
The angle is in degrees, measured counterclockwise from the positive horizontal axis.
Which formulas are used?
The horizontal component is F cos(theta), and the vertical component is F sin(theta).
Why can a component be negative?
A negative sign indicates direction: left for the horizontal component or down for the vertical component.
Can the magnitude be negative?
No. Magnitude is a non-negative size. Use the angle to describe direction; a negative magnitude returns an invalid input error.
For developers — API access
Everything on this page is available programmatically. This section is for teams who want to wire it into their own systems; everyone else can just use the tool above.
API endpoint
Prefer to automate it? One authenticated POST creates the task; the result comes back by webhook or a signed link. The same capability also runs here on the web, by email and from Telegram — and soon from our app too.
Call it from your stack
curl -X POST https://api.kit.forhosting.com/mech/force-components \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"magnitude":100,"angle":30}'const res = await fetch("https://api.kit.forhosting.com/mech/force-components", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"magnitude": 100,
"angle": 30
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/mech/force-components",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"magnitude": 100,
"angle": 30
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/mech/force-components", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"magnitude":100,"angle":30}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"magnitude":100,"angle":30}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/mech/force-components", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Example request
{
"magnitude": 100,
"angle": 30
}Example response
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "mech.force_components",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}The API is asynchronous: the call returns a task_id immediately and the result arrives by webhook. Polling is capped at 1 req/s per task.
Pricing
Published price — no tokens, no invented credits. A failed task is never charged.
Errors
| HTTP | Code | Meaning |
|---|---|---|
401 | unauthorized | Missing or invalid API key. |
402 | insufficient_balance | Your balance doesn't cover the task price. |
404 | unknown_type | That task type doesn't exist. |
429 | rate_limited | Too many requests. Use the webhook instead of polling. |