【Unity入門】3Dベクター
皆さんこんにちはランパードです~~
Unity Getting Started シリーズのブログへようこそ.私が学んだ知識は Station B の Afa 先生からのものです~Thanks
(1) 空間ベクトル
(1) 三次元ベクトルとは
なんでこんなブログが?主な理由は、3 次元のベクトルが unity で重要な役割を果たし、多くのコンポーネントのパラメーターで使用される型が Vector3 型であるためです。
全員が審査員である場合、現在大学で勉強している、または学校を卒業したばかりです。それは直接スキップできます。あなたの知識は間違いなく私のものより優れています。この記事は主に、長い間キャンパスを離れていたブロガーのような社交的な小動物のレビューとして使用されます。
図に示すように、3 次元ベクトルとは、3 次元空間での大きさと方向を持つベクトルを指し、通常は 3 つの実数で表され、それぞれ X、Y、Z 軸上のベクトルの成分を表します。
Unity では、vector3 タイプを使用します。最も一般的なのは変換コンポーネントです。
(2) ベクトルの加算と減算
数値的には、加算と減算は非常に単純で、ベクトル (3,0,0) + (0,4,0) のように、結果は (3,4,0) になります。
同じベクトル (3,4,0) はベクトル (3,0,0) を減算して (0,4,0) を取得し、ベクトルの各部分はそれ自体で加算および減算されます。
グラフィカルな観点から、ベクトルの追加は、三角形の定理または平行四辺形の定理を通じて新しいベクトルを取得できます。また、ベクトル減算を使用して、2 つのベクトル間の距離を計算できます。
(3) ベクトルの長さ
ベクトルの長さを見つける方法は? 非常に簡単なのは、ルート記号を開くための x²+y²+z² です。
たとえば、ベクトル (3,4,0) の長さは 5 であり、次に単位ベクトルの概念が導入されます。
単位ベクトルは長さ 1 のベクトルで、標準ベクトルまたは正規化ベクトルとも呼ばれます。3D ジオメトリでは、単位ベクトルはサイズやスケーリングに関係なく方向のみを表すため、方向を表すのに非常に役立ちます。
次に、(3,4,0) ベクトルの場合、そのベクトルは (0.6,0.8,0) です。
(4) ベクトルの内積
前回の内容は比較的シンプルで、点数掛け算や掛け算掛け算となると、誰もが頭を悩ませ頭が痒くなります(死んだ記憶が突如襲ってきます)。
ベクトルのドット積 (スカラー積または内積とも呼ばれます) は、2 つのベクトルの対応するコンポーネントを乗算し、結果を加算してスカラー (つまり、実数) を取得するベクトル演算です。
式は次のとおりです。
a · b = ax * bx + ay * by + az * bz
ここで、a と b は 3 次元ベクトル、ax、y、az はそれぞれ X、Y、Z 軸上のベクトル a の成分を表し、bx、by、bz は同じです
たとえば、(3,0,0) ドット掛ける (0,4,0) = 0、ドット掛け算の効果は何ですか?
たとえば、 2 つのベクトルが 同じ点を乗算することによって、2 つのベクトルが垂直であるかどうかを判断できます.ベクトル A にベクトル B = 0 を乗算すると、2 つのベクトルが垂直であることを意味します.2つのベクトルの角度を計算するために使用できます: cos θ = (a b) / (| |a|| * ||b||)、および別のベクトルへのベクトルの射影など。
(5) ベクトルの掛け算
クロス乗算は、新入生の高等数学で学習する必要がありますか? ははは本当に忘れてた
ベクトルの外積 (ベクトル積または外積とも呼ばれます) はベクトル演算です. 2 つのベクトルの対応する成分を計算して新しいベクトルを取得します. 新しいベクトルの方向は元の 2 つのベクトルに対して垂直であり,そのサイズは元の 2 つのベクトルに等しい. ベクトルによって形成される平行四辺形の面積
計算式は次の図のようになります。ここで、i、j、k は xyz の単位ベクトルです。
交差乗算の用途は何ですか? これら 2 つのベクトルに垂直な法線ベクトルを計算し、それを使用してポイントがジオメトリ内にあるかどうかなどを判断できます。
(2) ユニティベクトル関連インターフェース
(1) ベクトルの加算と減算
Unity は、使用するための多くのインターフェイスを提供します。足し算と引き算については何も言う必要はありません。直接計算するだけです。
Vector3 aaa = new Vector3(3,0,0);
Vector3 bbb = new Vector3(0,4,0);
Debug.Log("向量aaa + 向量bbb = " + (aaa + bbb));
Debug.Log("向量aaa - 向量bbb = " + (aaa - bbb));
出力は次のとおりです。
(2) ベクトルマグニチュードの長さ
Unity の Vector3 クラスは、長さを出力できるマグニチュード メソッドを提供します。
Debug.Log("向量aaa + 向量bbb的长度为 = " + (aaa + bbb).magnitude);
出力は次のとおりです。
(3) 正規化された単位ベクトル
ベクトルを単位化することもできます。つまり、ベクトルの方向は変更されず、長さは 1 に変換されます。使用されるインターフェイスは正規化されています。
Debug.Log("向量aaa + 向量bbb的单位向量为 = " + (aaa + bbb).normalized);
出力は次のとおりです。
Vector3 には、次のように直接使用できるいくつかの単位ベクトル定数も用意されています。
(4) ベクトル Dot の内積
ドット乗算は、Vector3、Dot の静的メソッドを使用できます
Vector3 aaa = new Vector3(3,0,0);
Vector3 bbb = new Vector3(0,4,0);
Debug.Log("向量aaa 点乘 向量bbb的结果 = " + Vector3.Dot(aaa, bbb));
出力は次のとおりです。
(5) ベクトルの掛け算
交差乗算は、Vector3、Cross の静的メソッドを使用できます
Vector3 aaa = new Vector3(3,0,0);
Vector3 bbb = new Vector3(0,4,0);
Debug.Log("向量aaa 叉乘 向量bbb的结果 = " + Vector3.Cross(aaa, bbb));
出力は次のとおりで、法線ベクトルの 1 つです。
(6) 2 つのベクトル間の距離
2 つのベクトル間の距離を計算するには 2 つの方法があります。1 つは最初にベクトルを減算してから大きさの親しみやすさを読み取る方法、もう 1 つは Vector3 の Distance メソッドを直接使用する方法です。
Vector3 aaa = new Vector3(3,0,0);
Vector3 bbb = new Vector3(0,4,0);
Debug.Log("向量aaa 和 向量bbb的距离1 = " + Vector3.Distance(aaa, bbb));
Debug.Log("向量aaa 和 向量bbb的距离2 = " +(aaa - bbb).magnitude);
出力は次のとおりです。
では、今日はここまでです、読んでくれてありがとう!! !
いいねとフォロー!! !