血痕の衝突角度計算
この計算機は、楕円形の血痕について測定した幅と長さを、度数法による衝突角度へ変換します。角度は幅を長さで割った値の逆正弦である、という標準的な幾何関係を用いるため、二つの測定値には同じ単位をお使いください。計算前に、各寸法が正の有限数であり、幅が長さを超えていないことを確認します。教育、記録作成、予備計算のための透明性の高い数学的補助であり、現場検証、測定手順、不確かさの評価、または有資格の法科学専門家による判断に代わるものではありません。
無料で実行
計算前に一貫した方法で血痕を測定してください
計算には、ほぼ楕円形をした一つの血痕の二つの寸法を用います。幅は血痕を横切る短い寸法、長さは長軸に沿った長い寸法です。楕円本体を測定し、細い棘状部分、衛星状の小滴、尾部、楕円を表さない不規則な突出部は含めないでください。式では二値の比を取り単位が相殺されるため、ミリメートル、センチメートル、インチなど、必ず同じ単位をお使いください。入力時には単位記号を付けません。正の有限数だけを受け付け、ゼロ、負数、欠落した項目、数値でない文字列は拒否します。幅が長さを上回る場合も、軸の取り違えや不適切な測定が疑われるため拒否されます。円形の血痕は有効です。幅と長さが等しければ比は一となり、角度は九十度です。丸め方や輪郭の選び方によって報告角度が変わる可能性があるため、軸を選んだ方法と元の測定値を保存してください。計算処理自体は常に同じ結果を返します。
数式と度数で返される値をご確認ください
数学モデルでは、角度を幅÷長さの逆正弦として定義します。まず、ゼロより大きく一以下となる無次元比を求め、その逆正弦を評価して、ラジアンから度へ変換します。例えば幅と長さの比が二分の一なら、角度は三十度です。比が小さいほど楕円は細長く、算出角度は浅くなります。比が一に近いほど血痕は円形に近く、角度は九十度へ近づきます。応答には、検証済みの幅、長さ、比、および angle_degrees が含まれ、再現可能な JSON 比較のために安定した小数丸めを行います。この数値は単純化した楕円モデルの鋭角を示すものです。移動方向、起点、収束点、速度、事象の順序、血痕を生じさせた仕組みは判定しません。不確かさ区間も付与しません。特に小さい血痕、変形した血痕、吸収された血痕、転写痕、不規則な血痕では測定不確かさが重要です。出力の桁数を、元の測定が持つ証拠上の精度と同一視しないでください。
結果を記録された分析要素の一つとしてお使いください
前提条件を明記すれば、血痕から求めた角度は、教育演習、管理された実験、ソフトウェア検証、記録を伴う予備調査に利用できます。実際の調査では通常、複数の適切な血痕、表面の質感、痕跡の品質、向き、現場の幾何形状、採取方法、各測定の不確かさを専門家が検討します。このエンドポイントは幅と長さの変換だけを行うため、動作を容易に確認し再現できます。痕跡が血液か、衝突に由来するか、楕円が正しく測定されたか、角度計算に適しているかは判断しません。無関係な結果を自動的に平均したり、単一値を出来事の証明として扱ったりしないでください。第三者が作業を再現できるよう、元画像、尺度、測定法、寸法、除外事項を角度とともに保存してください。ブラウザーでは対話的に確認でき、API は成功したリクエストごとに $0.002 で、教材、ワークフロー、品質試験に同じ決定論的計算を提供します。法科学上の結論は、該当する手順と法的基準を用いる訓練済み専門家に委ねてください。
活用例
法科学教育
楕円形血痕の幅と長さの比が、度数法による鋭角の衝突角度へどのように対応するかを示します。
計算品質の管理
同じ式を実装する表計算、研究室ソフトウェア、自動試験向けに、再現可能な基準値を作成します。
記録を伴う予備確認
記録済み寸法を再現可能な幾何値へ変換し、専門家が解釈できるよう元の測定値も保持します。
よくある質問
どの数式を使用しますか?
角度 = arcsin(幅 / 長さ) を使用し、逆正弦の結果をラジアンから度へ変換します。
幅と長さには同じ単位が必要ですか?
はい。ミリメートル、センチメートル、インチなどを使用できますが、比を計算するため二つの測定値には同じ単位をお使いください。
幅が長さを超えてはいけないのはなぜですか?
幅は楕円の短軸、長さは長軸です。幅が大きいと比が一を超えて逆正弦の実数定義域を外れ、通常は軸の取り違えを示します。
幅と長さが等しい場合はどうなりますか?
比は一となり、返される角度は九十度です。この幾何モデルでは円形の血痕を表します。
この結果だけで現場の出来事を証明できますか?
いいえ。物質の同定、血痕の分類、事象の再構成、不確かさの定量化は行わず、資格を持つ専門家の法科学分析に代わるものではありません。
開発者向け — APIアクセス
このページの機能はすべてAPIからも利用できます。自社システムに組み込みたいチーム向けのセクションです。それ以外の方は上のツールをそのままお使いください。
エンドポイント
Bearerトークンで認証し、POST1回でタスクをキューに登録します。結果はWebhookまたは署名付きリンクで受け取れます。
お使いのスタックから呼び出す
curl -X POST https://api.kit.forhosting.com/sci/angle-of-impact \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"width":5,"length":10}'const res = await fetch("https://api.kit.forhosting.com/sci/angle-of-impact", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"width": 5,
"length": 10
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/sci/angle-of-impact",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"width": 5,
"length": 10
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/sci/angle-of-impact", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"width":5,"length":10}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"width":5,"length":10}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/sci/angle-of-impact", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)リクエスト例
{
"width": 5,
"length": 10
}レスポンス例
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "sci.angle_of_impact",
"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 | リクエストが多すぎます。しばらく待ってから再度お試しください。 |