曲面の法線計算機
球面 x² + y² + z² 上の点 (1, 2, 2) では勾配が (2, 4, 4) なので、法線は r(t) = (1, 2, 2) + t·(2, 4, 4)、単位法線は (1, 2, 2) を3で割ったものです。ブラウザで無料で使えます。
- 無料
- ブラウザで動作
- 登録不要
- データは端末の外に出ません
無料で実行
計算例
- X0
- 1
- Y0
- 2
- Z0
- 2
- Fx
- 2
- Fy
- 4
- Fz
- 4
- 勾配
- 2, 4, 4
- 方向
- 2, 4, 4
- 勾配の大きさ
- 6
- 単位法線ベクトル
- 0.3333333333, 0.6666666667, 0.6666666667
多変数微積分では、レベル関数Fの勾配は曲面F(x,y,z)=c上のあらゆる接方向と直交します。接触点で偏導関数を評価すると、その一つのベクトルが点を通る一意の法線の方向になります。学生・講師・自動化スクリプトは、宿題の曲面ごとに代数をやり直すことなく、そのパラメトリック方程式を必要とします。この曲面の法線計算機は点の三座標と勾配の三成分を受け取り、零勾配を特異点として拒否し、成分ごとのパラメトリック式、ベクトル形r(t)、対称形、勾配の大きさ、単位法線を返します。
法線とは何か、なぜ勾配がその方向になるのか
三次元空間のレベル曲面とは、滑らかなスカラー場Fが定数cをとる点の集合です。その曲面上の正則点P0では、Fの三つの一階偏導関数からなる勾配ベクトルは接平面に垂直です。曲面に留まりP0を通る曲線の速度ベクトルはいずれも勾配と直交します。
したがってP0を通り勾配に平行な直線が、その点における曲面の法線です。パラメトリック形では直線をr(t)=P0+t·∇F(P0)と書き、成分ごとにx=x0+F_x·t、y=y0+F_y·t、z=z0+F_z·tとなります。
偏導関数がいずれも零でないとき、同じ幾何は対称形を許し、(x−x0)/F_x、(y−y0)/F_y、(z−z0)/F_zの三分数を等置します。一つの偏導関数が消えるとその座標は接触点で固定され、対称表示はその制約を明示します。零勾配はFの臨界点を示し、曲面が特異であったりレベル集合が一意の接平面を定義しない場合があります。
球・楕円体・双曲面、z=g(x,y)をF=z−gと書き換えたグラフ、一般多項式など、問題の代数的Fについてご自身でF_x、F_y、F_zを評価し、六つの数値を計算機に渡すと、安定して丸められた法線の記述が得られます。
法線が必要になる場面
多変数微積分の講義では毎学期、球・円柱・レベル集合に書き換えたグラフ・平面との交わりなど、法線を求める演習が多数出ます。LMSや個別指導プラットフォームは、学生の自由文を解析する代わりに決定的オラクルを呼んでパラメトリック係数を採点できます。
物理・工学ノートは、モデルから偏導関数が分かれば、ポテンシャルの最急上昇方向や反射・屈折の幾何法線がしばしば必要です。「試験ジェネレータは教科書曲面の点をサンプリングし、オフラインで勾配を計算し、学習者の答えを丸め済みパラメトリック欄と照合できます。
活用例
多変数微積分の宿題
評価済みの勾配と接触点を、代数の取り違えなく教科書曲面のパラメトリック・対称な法線方程式に変換します。
LMS・試験の自動採点
零勾配の特異点を無効として拒否する決定的パラメトリック・オラクルに対して、学生の法線解答を採点します。
ノートとCAD準備の幾何
既知の偏導関数から、可視化・反射モデル・メッシュ診断向けに曲面サンプルの法線方向と単位法線を出力します。
よくある質問
曲面へのパラメトリック法線はどう求めますか?
接触点で∇Fを評価し、x0, y0, z0とfx, fy, fzを送ってください。
なぜ勾配が法線の方向なのですか?
レベル集合F=c上では勾配は曲面のあらゆる接ベクトルと直交するため、点を通り∇Fに平行な唯一の直線が法線になります。
点で勾配が零の場合はどうなりますか?
零勾配はそこで曲面が特異である可能性を示し、一意の法線は定義されません。
Fそのものの式を渡す必要はありますか?
いいえ。 点での三つの偏導関数をオフライン(手計算またはCAS)で求め、点座標とともにその数値を送ってください。
勾配 (2, 4, 4) の大きさと単位法線は何ですか?
大きさは6です。各成分を6で割ると単位法線 (1, 2, 2)/3 になり、法線と同じ向きで長さが1のベクトルです。
関連ツール
開発者向け — APIアクセス
このページの機能はすべてAPIからも利用できます。自社システムに組み込みたいチーム向けのセクションです。それ以外の方は上のツールをそのままお使いください。
エンドポイント
Bearerトークンで認証し、POST1回でタスクをキューに登録します。結果はWebhookまたは署名付きリンクで受け取れます。
お使いのスタックから呼び出す
curl -X POST https://api.kit.forhosting.com/calculus/normal-line-surface \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"x0":1,"y0":2,"z0":2,"fx":2,"fy":4,"fz":4}'const res = await fetch("https://api.kit.forhosting.com/calculus/normal-line-surface", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"x0": 1,
"y0": 2,
"z0": 2,
"fx": 2,
"fy": 4,
"fz": 4
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/calculus/normal-line-surface",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"x0": 1,
"y0": 2,
"z0": 2,
"fx": 2,
"fy": 4,
"fz": 4
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/calculus/normal-line-surface", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"x0":1,"y0":2,"z0":2,"fx":2,"fy":4,"fz":4}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"x0":1,"y0":2,"z0":2,"fx":2,"fy":4,"fz":4}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/calculus/normal-line-surface", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)リクエスト例
{
"x0": 1,
"y0": 2,
"z0": 2,
"fx": 2,
"fy": 4,
"fz": 4
}レスポンス例
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "calculus.normal_line_surface",
"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 | リクエストが多すぎます。しばらく待ってから再度お試しください。 |
技術的な注記
法線とは何か、なぜ勾配がその方向になるのか
本エンドポイントはその場合をinvalid_inputで拒否し、勝手な方向を作りません。
入力契約・応答形・検証規則
曲面の接触点のx0、y0、z0と、その点でのFの偏導関数(勾配成分)fx、fy、fzです。短い別名を受け付けます。三つの勾配成分がすべて零(微小な数値許容内)の場合、零勾配では一意の法線が得られないという明確なメッセージでタスクは失敗します。3Dスケッチが必要なら自前の描画層と組み合わせてください。本能力は数値と方程式テキストのみを返します。必須の有限数六つを含むJSON本体をPOSTしてください。点はx、y、zまたはpx、py、pz、勾配はFx、Fy、Fzまたはgradient_x、gradient_y、gradient_zです。欠落フィールド、空文字、非数値、非有限数はフィールド名付きのinvalid_inputで失敗し、課金されません。成功時、本体は整理済みの点と勾配、三偏導関数の同一コピーであるgradient配列とdirection配列、勾配のユークリッドノルムであるgradient_magnitude、それを割ったunit_normal、読みやすい成分式parametric_x・parametric_y・parametric_z、コンパクトなr(t)形parametric_vector、三部の対称または拘束形symmetric、およびr(t)=P0+t·∇Fを再述するformula文字列を返します。例:球面F=x²+y²+z²の点(1, 2, 2)では勾配は(2, 4, 4)、パラメトリック直線はx=1+2t、y=2+4t、z=2+4t、単位法線は正規化ベクトル(1, 2, 2)/3です。
法線APIが実効価値を生む場面
実装は純粋parseのティアAのため、成功呼び出しは公開の基本価格$0.002のみでモデルトークンも外向き通信もなく、検証失敗は残高を消費しません。リクエストを小さく保ち、丸め済み勾配とパラメトリック文字列をテストに固定すれば、六数の幾何恒等式のために本格的な数式処理系を立てずとも、宿題・エッジワーカー・研究スクリプト向けの再現可能な法線が得られます。
技術的な質問
曲面の法線計算機の料金は?
ブラウザツールは無料です。APIは成功呼び出しごとに前払いKIT残高から$0.002です。無効入力は課金されません。