A 回答 (4件)
- 最新から表示
- 回答順に表示
No.4
- 回答日時:
多分、"あるベクトル"も任意に指定出来るのですよね?
かつnを3とする前提で説明させて下さい。最も想像し易い為です。故に正規直交基は、3本のベクトル(接線t/従法線b/主法線n)で構成されます。具体的な方法は、下記の通りです。
(1) "あるベクトル"をtと見立てる。
(2) 補助ベクトルaを作る。例えば、a( (float)rand(), (float)rand(), (float)rand() )のように乱数で作る。この時、零ベクトルにならないように注意。
(3) b = t x a(xは外積) でbを作る。
(4) n = t x b(xは外積) でnを作る。
(5) t,b,nを正規化する。
これでどうでしょう?t,b,nは解の条件を満たしているはずです。乱数を使っている為 結果が定まりません。が、とっかかりとしてはOKでしょう。又、実行する度に、「無限に在る正規直交基の1つを、無作為に生成」します。
この方法はあくまで解の1つです。他にも良い方法があると思います。では、頑張って下さい。
分かりにくい質問に対して非常に分かりやすい回答ありがとうございました.本当に助かりました.さっそくプログラムを書いてみたいと思います.
No.3
- 回答日時:
補足です。
(2)の「任意の変換行列」は、「"変換後も直交性を維持出来る"任意の変換行列」
です。従って、零変換やせん断変換はダメです。
丁寧に教えていただいてありがとうございます。こちらの質問の仕方が間違っていて分かりづらくなってしまい申し訳ないです。
質問ですが、「ある1つのn次元ベクトルに直交する部分空間の、任意の正規直交基底ベクトルを求めたい」というものなのですが、どうでしょうか?
よろしくお願いします。
No.2
- 回答日時:
(1) n次の単位行列を作る
(2) (1)に軸i(iの定義域は[1,n])に関する任意の変換行列(回転、拡大等)を掛ける。又、複数軸やっても良い
(3) (2)の各行(軸)ベクトルを正規化。かつそれら(接線、従法線、主法線)を抽出
これでお望みの結果を出せると思います。
(1)の段階で、既に正規直交基です。(2)はそれを無限種に変換します。(3)は、(2)で失われたかもしれない正規性を回復させます。
詳しくは、市販の 線形代数/3DCG幾何 に関する本を読んで下さい。
あと問題文が意味不明です。条件指定が不備だからです。「ある1つのn次元ベクトルに対する正規直交基底ベクトル」ではなく、「ある任意のn次正規直交基を構成する各ベクトル」ではないでしょうか?
No.1
- 回答日時:
正規直交基底ベクトルって何? 基底はあくまでベクトルの集合で一つのベクトルだけ取り出しても意味ないと思うよ。
そもそも普通に座標空間で考えると基底は自明なものがあるんだし、もう少し問題を明確にしないとプログラミング言語でどうこうなんてできないでしょ。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- 工学 ちなみになぜv=(v・e1)e1+(v・e2)e2はe1やe2が、正規直交基底でないと成り立たないと 2 2022/12/22 17:22
- 数学 線形代数の問題について教えて欲しいです。 3 2023/05/06 23:13
- 数学 数学の問題で法線ベクトルについて 5 2022/11/13 12:45
- 数学 線形代数の正規直行系についての問題がわからないです。 1 2022/07/16 11:20
- 数学 3次元実ベクトル空間において, 平面 P:x-y+z+1=0 と直線 L:2(x-1)=-y=-z 3 2022/10/29 14:39
- 数学 正射影ベクトルで垂直なベクトルを適当に1つもとめて解く問題は多々あると思うんですが 下の図のような問 4 2022/09/14 20:37
- 数学 線形代数学の問題です! Vは 4 次元ベクトル空間とし線形変換 f ∶ V→ V のある基底 v1, 1 2022/06/12 09:25
- その他(プログラミング・Web制作) 3Dモデルにおける法線の計算について(Python,OpenGL) 1 2023/04/25 23:46
- その他(プログラミング・Web制作) パイソンのプログラミングについての質問です 2 2023/05/22 12:39
- 物理学 太鼓の音の指向性 3 2023/05/17 12:00
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
緯度、経度の 10進法と 60進法...
-
bmp→jpgに、jpg→bmpに
-
VB6からVB2010への変換について
-
COBOLで管理しているデータをEx...
-
Excel-VBAのmsgBox()の不思議
-
16進数を10進数文字列に変換する
-
VisualBasicをC++に変換する方...
-
3のつく数字と3の倍数のみを表...
-
StrConvの使い方について教えて...
-
php
-
DOSコマンドでの文字コード変換...
-
Mac 乗数の入力方法
-
アセンブラ言語の数字を数値に...
-
vb.netの型変換について
-
シフトJISのCSVファイルをUFT-8...
-
C#でのpngからbmpへの変換について
-
変換ソフトについて
-
EUCからUTF-8へのコード変換
-
.jpgと.pngファイルを...
-
【C&C++】文字コードEUCをShif...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
緯度、経度の 10進法と 60進法...
-
Excel-VBAのmsgBox()の不思議
-
Mac 乗数の入力方法
-
家電製品の電力周波数を変える機械
-
3のつく数字と3の倍数のみを表...
-
bmp→jpgに、jpg→bmpに
-
10進数をBCDに変換する方法
-
【EXCEL】カナ、ひらがなを英字...
-
StrConvの使い方について教えて...
-
分を時間に変換するプログラム
-
画像ファイル変換(Tiff→PDF)
-
マンセル⇔XYZ,RGB変換式或いは...
-
C/C++→JAVAに変換するツール
-
VB6からVB2010への変換について
-
c++でmatからvectorへの変換の...
-
DOSコマンドでの文字コード変換...
-
VB.NETをJavaに変換するツール...
-
SJIS⇔UTF-8の文字コード...
-
なぜ通信には16進数文字列が使...
-
C#でのpngからbmpへの変換について
おすすめ情報