力の成分分解計算機
力の成分分解計算機は、1つの力ベクトルを符号付きの水平成分と垂直成分に変換します。正の水平軸から反時計回りに測った方向角を度で入力し、力の大きさには0以上の値をご指定ください。水平成分には余弦、垂直成分には正弦を使用するため、結果の符号からベクトルの象限も自動的に判断できます。ニュートンだけでなく、計算全体で統一されている任意の力の単位をご利用いただけます。両成分は入力した大きさと同じ単位になります。負の大きさは、方向が暗黙に反転することを防ぐため受け付けません。
無料で実行
大きさと方向を明確な規約で入力してください
力ベクトルには、大きさと方向の2つの情報が必要です。大きさには、ニュートン、キロニュートン、重量ポンドなど、ほかの計算と整合する力の単位をご使用ください。角度は正の水平軸から反時計回りに度で測ります。この規約では、0度は右、90度は上、180度は左、270度は下を示します。同じ終辺を持つ角度は同じ方向を表すため、角度を0から360の範囲に限定する必要はありません。たとえば、-30度と330度からは同じ成分が得られます。大きさは符号付きの方向ではなく量を表すため、0以上でなければなりません。元の資料に負の値がある場合は、大きさを訂正するか、方向に180度を加えて反対向きのベクトルとして表してください。API では数値形式の文字列も受け付けますが、すべて有限値である必要があります。空欄、無限大、数値でない文字列には明確な入力エラーを返します。
成分の式と符号をご確認ください
直交成分への分解には Fx = F cos(theta) と Fy = F sin(theta) を使用します。角度の基準が正の水平軸であるため、余弦が左右、正弦が上下の方向を決めます。水平成分が正なら右、負なら左を示し、垂直成分が正なら上、負なら下を示します。符号を保持した結果は、絶対値だけの結果よりも便利です。平衡条件の合計や運動方程式へそのまま代入できます。軸と完全に一致する方向では、浮動小数点演算により、正確な0の代わりに 0.000000000000006 のようなごく小さい値が生じる場合があります。本計算機は無視できる残差を0に正規化し、結果を決定的に丸めます。Fx の2乗と Fy の2乗の和の平方根が、通常の丸め誤差を除いて元の大きさと一致することでも結果をご確認いただけます。この三平方の関係は、角度の基準軸を誤った場合の発見にも役立ちます。
分解した力を実際の計算にご利用ください
成分分解により、斜めの力を、合成した効果がまったく同じ2つの直交する力に置き換えられます。自由物体図では、水平成分をx軸、垂直成分をy軸に配置し、それぞれを同じ軸上のほかの力と合計してください。引かれる箱の合力、ケーブル張力の支持反力、指定した座標系での推力や抗力の解析に利用できます。出力成分は入力した大きさと同じ単位です。単位を変換せずに異なる単位の値と混ぜないでください。また、問題図の角度基準もご確認ください。垂直軸から測る場合や時計回りに測る場合は、本計算機の規約へ変換してから入力します。本機能が分解するのは1つの力だけであり、複数ベクトルの合計、加速度の計算、欠けた大きさの推定は行いません。複数の力については各ベクトルを個別に分解し、水平成分同士と垂直成分同士をそれぞれ合計してください。
活用例
引く力を成分に分解
斜めの取っ手やロープによる力を前向きと上向きに分け、摩擦力と垂直抗力の計算に使用できます。
ケーブル張力を解析
張力を符号付きの軸成分に分け、支持反力や平衡条件を計算できます。
自由物体図を作成
斜めの力をx成分とy成分に変換し、同じ軸上にあるほかの力と合計できます。
よくある質問
利用料金はいくらですか?
ブラウザーでは無料で実行でき、API の1回のリクエストは $0.002 です。
角度はどのように測りますか?
正の水平軸を基準に、反時計回りの角度を度で指定します。
どの式を使用しますか?
水平成分は F cos(theta)、垂直成分は F sin(theta) です。
成分が負になるのはなぜですか?
負の符号は方向を示し、水平成分では左、垂直成分では下を意味します。
力の大きさに負の値を指定できますか?
いいえ。大きさは0以上であり、方向は角度で表します。負の値には入力エラーを返します。
開発者向け — APIアクセス
このページの機能はすべてAPIからも利用できます。自社システムに組み込みたいチーム向けのセクションです。それ以外の方は上のツールをそのままお使いください。
エンドポイント
Bearerトークンで認証し、POST1回でタスクをキューに登録します。結果はWebhookまたは署名付きリンクで受け取れます。
お使いのスタックから呼び出す
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)リクエスト例
{
"magnitude": 100,
"angle": 30
}レスポンス例
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "mech.force_components",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}非同期APIです。task_idは即時に返ります。ポーリングは1秒あたり1リクエストまでです。
料金
単価はすべて公開しています。トークン換算や独自クレジットはありません。失敗したタスクは課金されません。
エラー
| HTTP | コード | 意味 |
|---|---|---|
401 | unauthorized | APIキーが無効か、指定されていません。Authorizationヘッダーを確認してください。 |
402 | insufficient_balance | 残高が不足しています。チャージ後に再度お試しください。 |
404 | unknown_type | 指定されたタスクタイプは存在しません。タイプ名を確認してください。 |
429 | rate_limited | リクエストが多すぎます。しばらく待ってから再度お試しください。 |