Vector3
Stellt einen 3D-Vektor mit drei Gleitkommazahlen mit doppelter Präzision dar.
Implementiert: IEquatable<Vector3>
Konstruktoren
public Vector3(double x, double y, double z)
vector3 = Vector3(x, y, z)
Konstruiert einen neuen Vector3.
- x
- Die x-Komponente des Vector3.
- y
- Die y-Komponente des Vektors3.
- z
- Die z-Komponente des Vector3.
public Vector3(Vector2 v, double z)
vector3 = Vector3(v, z)
Konstruiert eine neue Instanz aus dem gegebenen Vector2d.
- v
- Der Vector2d zum Kopieren von Komponenten aus.
- z
public Vector3(Vector3 v)
vector3 = Vector3(v)
Konstruiert eine neue Instanz aus dem gegebenen Vector3d.
- v
- Der Vector3d zum Kopieren von Komponenten aus.
public Vector3(Vector4 v)
vector3 = Vector3(v)
Konstruiert eine neue Instanz aus dem gegebenen Vector4d.
- v
- Der Vector4d zum Kopieren von Komponenten aus.
Eigenschaften
public double Length { get; }
value = vector3.Length
Bekommt die Länge (Magnitude) des Vektors.
public double LengthFast { get; }
value = vector3.LengthFast
Erhält eine Annäherung an die Vektorlänge (Magnitude).
public double LengthSquared { get; }
value = vector3.LengthSquared
Bekommt das Quadrat der Vektorlänge (Magnitude).
public Vector2 Xy { get; set; }
value = vector3.Xy
vector3.Xy = value
Erhält oder setzt ein OpenTK.Vector2d mit den X- und Y-Komponenten dieser Instanz.
Methoden
public static void Add(Vector3 a, Vector3 b, Vector3 result)
Vector3.Add(a, b, result)
Addiert zwei Vektoren.
- a
- Linker Operand.
- b
- rechter Operand.
- result
- Ergebnis der Operation.
public static Vector3 Add(Vector3 a, Vector3 b)
result = Vector3.Add(a, b)
Addiert zwei Vektoren.
- a
- Linker Operand.
- b
- rechter Operand.
Rückgabe: Ergebnis der Operation.
public static void BaryCentric(Vector3 a, Vector3 b, Vector3 c, double u, double v, Vector3 result)
Vector3.BaryCentric(a, b, c, u, v, result)
Interpolieren Sie 3 Vektoren mit Barycentric Koordinaten
- a
- Erster Eingangsvektor.
- b
- zweiter Eingangsvektor.
- c
- dritter Eingangsvektor.
- u
- Erste baryzentrische Koordinate.
- v
- Zweite Barycentric-Koordinate.
- result
- Ausgangsvektor a wenn u = v = 0, b wenn u = 1, v = 0, c wenn u = 0, v = 1 und eine lineare Kombination von a, b, c ansonsten
public static Vector3 BaryCentric(Vector3 a, Vector3 b, Vector3 c, double u, double v)
result = Vector3.BaryCentric(a, b, c, u, v)
Interpolieren Sie 3 Vektoren mit Barycentric Koordinaten
- a
- erster Eingangsvektor
- b
- zweiter Eingangsvektor
- c
- dritter Eingangsvektor
- u
- Erste baryzentrische Koordinate
- v
- Zweite Barycentric-Koordinate
Rückgabe: a wenn u = v = 0, b wenn u = 1,v = 0, c wenn u = 0,v = 1 und eine lineare Kombination von a,b,c ansonsten
public static void CalculateAngle(Vector3 first, Vector3 second, double result)
Vector3.CalculateAngle(first, second, result)
Berechnet den Winkel (in Radianten) zwischen zwei Vektoren.
- first
- Der erste Vektor.
- second
- Der zweite Vektor.
- result
- Winkel (in Radianten) zwischen den Vektoren.
public static double CalculateAngle(Vector3 first, Vector3 second)
result = Vector3.CalculateAngle(first, second)
Berechnet den Winkel (in Radianten) zwischen zwei Vektoren.
- first
- Der erste Vektor.
- second
- Der zweite Vektor.
Rückgabe: Winkel (in Radianten) zwischen den Vektoren.
public static void Clamp(Vector3 vec, Vector3 min, Vector3 max, Vector3 result)
Vector3.Clamp(vec, min, max, result)
Einen Vektor an den vorgegebenen Minimal- und Maximalvektoren klemmen
- vec
- Eingangsvektor
- min
- Mindestvektor
- max
- Maximalvektor
- result
- Der geklemmte Vektor
public static Vector3 Clamp(Vector3 vec, Vector3 min, Vector3 max)
result = Vector3.Clamp(vec, min, max)
Einen Vektor an den vorgegebenen Minimal- und Maximalvektoren klemmen
- vec
- Eingangsvektor
- min
- Mindestvektor
- max
- Maximalvektor
Rückgabe: Der geklemmte Vektor
public static Vector3 ComponentMax(Vector3 a, Vector3 b)
result = Vector3.ComponentMax(a, b)
Berechnen Sie das komponentenweise Maximum von zwei Vektoren
- a
- erster Operand
- b
- zweiter Operand
Rückgabe: Das komponentenweise Maximum
public static void ComponentMax(Vector3 a, Vector3 b, Vector3 result)
Vector3.ComponentMax(a, b, result)
Berechnen Sie das komponentenweise Maximum von zwei Vektoren
- a
- erster Operand
- b
- zweiter Operand
- result
- Das komponentenweise Maximum
public static Vector3 ComponentMin(Vector3 a, Vector3 b)
result = Vector3.ComponentMin(a, b)
Berechnen Sie das komponentenweise Minimum von zwei Vektoren
- a
- erster Operand
- b
- zweiter Operand
Rückgabe: Das komponentenweise Minimum
public static void ComponentMin(Vector3 a, Vector3 b, Vector3 result)
Vector3.ComponentMin(a, b, result)
Berechnen Sie das komponentenweise Minimum von zwei Vektoren
- a
- erster Operand
- b
- zweiter Operand
- result
- Das komponentenweise Minimum
public static void Cross(Vector3 left, Vector3 right, Vector3 result)
Vector3.Cross(left, right, result)
Kaklisiere das Kreuz (Vektor) Produkt von zwei Vektoren
- left
- erster Operand
- right
- zweiter Operand
- result
- Das Kreuzprodukt der beiden Inputs
Rückgabe: Das Kreuzprodukt der beiden Inputs
public static Vector3 Cross(Vector3 left, Vector3 right)
result = Vector3.Cross(left, right)
Kaklisiere das Kreuz (Vektor) Produkt von zwei Vektoren
- left
- erster Operand
- right
- zweiter Operand
Rückgabe: Das Kreuzprodukt der beiden Inputs
public static Vector3 Divide(Vector3 vector, Vector3 scale)
result = Vector3.Divide(vector, scale)
Teilt einen Vektor durch die Komponenten eines Vektors (Skala).
- vector
- Linker Operand.
- scale
- rechter Operand.
Rückgabe: Ergebnis der Operation.
public static void Divide(Vector3 vector, double scale, Vector3 result)
Vector3.Divide(vector, scale, result)
Teilt einen Vektor durch einen Skalar.
- vector
- Linker Operand.
- scale
- rechter Operand.
- result
- Ergebnis der Operation.
public static Vector3 Divide(Vector3 vector, double scale)
result = Vector3.Divide(vector, scale)
Teilt einen Vektor durch einen Skalar.
- vector
- Linker Operand.
- scale
- rechter Operand.
Rückgabe: Ergebnis der Operation.
public static void Divide(Vector3 vector, Vector3 scale, Vector3 result)
Vector3.Divide(vector, scale, result)
Teilen Sie einen Vektor durch die Komponenten eines Vektors (Skala).
- vector
- Linker Operand.
- scale
- rechter Operand.
- result
- Ergebnis der Operation.
public static void Dot(Vector3 left, Vector3 right, double result)
Vector3.Dot(left, right, result)
Berechnen Sie das Punkt (Skalar) Produkt von zwei Vektoren
- left
- erster Operand
- right
- zweiter Operand
- result
- Das Punktprodukt der beiden Eingänge
public static double Dot(Vector3 left, Vector3 right)
result = Vector3.Dot(left, right)
Berechnen Sie das Punkt (Skalar) Produkt von zwei Vektoren
- left
- erster Operand
- right
- zweiter Operand
Rückgabe: Das Punktprodukt der beiden Eingänge
public bool Equals(Vector3 OtherVector, double ErrorValue)
result = vector3.Equals(OtherVector, ErrorValue)
Gibt an, ob diese Instanz und ein angegebenes Objekt innerhalb eines Fehlerbereichs gleich sind.
- OtherVector
- ErrorValue
Rückgabe: Wahr, wenn die Instanzen gleich sind; falsch sonst.
public bool Equals(Vector3 other)
result = vector3.Equals(other)
Gibt an, ob der aktuelle Vektor einem anderen Vektor entspricht.
- other
- Ein Vektor zum Vergleichen mit diesem Vektor.
Rückgabe: true, wenn der aktuelle Vektor gleich dem Vektorparameter ist; andernfalls false.
public override bool Equals(object obj)
result = vector3.Equals(obj)
Gibt an, ob diese Instanz und ein angegebenes Objekt gleich sind.
- obj
- Das Objekt zum Vergleichen.
Rückgabe: Wahr, wenn die Instanzen gleich sind; falsch sonst.
public override int GetHashCode()
result = vector3.GetHashCode()
Gibt den Hashcode für diese Instanz zurück.
Rückgabe: Ein System.Int32, der den eindeutigen Hashcode für diese Instanz enthält.
public Vector3 GetNormal()
result = vector3.GetNormal()
Gibt einen normalisierten Vektor davon zurück.
public static Vector3 Lerp(Vector3 a, Vector3 b, double blend)
result = Vector3.Lerp(a, b, blend)
Gibt einen neuen Vektor zurück, der die lineare Mischung der 2 gegebenen Vektoren ist
- a
- erster Eingangsvektor
- b
- zweiter Eingangsvektor
- blend
- Der Blendfaktor a wenn Blend = 0, b wenn Blend = 1
Rückgabe: a wenn Blend = 0, b wenn Blend = 1 und ansonsten eine lineare Kombination
public static void Lerp(Vector3 a, Vector3 b, double blend, Vector3 result)
Vector3.Lerp(a, b, blend, result)
Gibt einen neuen Vektor zurück, der die lineare Mischung der 2 gegebenen Vektoren ist
- a
- erster Eingangsvektor
- b
- zweiter Eingangsvektor
- blend
- Der Blendfaktor a wenn Blend = 0, b wenn Blend = 1
- result
- a wenn Blend = 0, b wenn Blend = 1 und ansonsten eine lineare Kombination
public static Vector3 Max(Vector3 left, Vector3 right)
result = Vector3.Max(left, right)
Gibt den Vector3d mit der minimalen Größe zurück
- left
- linker Operateur
- right
- rechter Operateur
Rückgabe: Der minimale Vektor3
public static Vector3 Min(Vector3 left, Vector3 right)
result = Vector3.Min(left, right)
Gibt den Vector3d mit der minimalen Größe zurück
- left
- linker Operateur
- right
- rechter Operateur
Rückgabe: Der minimale Vektor3
public static Vector3 Multiply(Vector3 vector, double scale)
result = Vector3.Multiply(vector, scale)
Multipliziert einen Vektor mit einem Skalar.
- vector
- Linker Operand.
- scale
- rechter Operand.
Rückgabe: Ergebnis der Operation.
public static void Multiply(Vector3 vector, double scale, Vector3 result)
Vector3.Multiply(vector, scale, result)
Multipliziert einen Vektor mit einem Skalar.
- vector
- Linker Operand.
- scale
- rechter Operand.
- result
- Ergebnis der Operation.
public static Vector3 Multiply(Vector3 vector, Vector3 scale)
result = Vector3.Multiply(vector, scale)
Multipliziert einen Vektor mit den Komponenten einen Vektor (Skala).
- vector
- Linker Operand.
- scale
- rechter Operand.
Rückgabe: Ergebnis der Operation.
public static void Multiply(Vector3 vector, Vector3 scale, Vector3 result)
Vector3.Multiply(vector, scale, result)
Multipliziert einen Vektor mit den Komponenten eines Vektors (Skala).
- vector
- Linker Operand.
- scale
- rechter Operand.
- result
- Ergebnis der Operation.
public static void Normalize(Vector3 vec, Vector3 result)
Vector3.Normalize(vec, result)
Skalieren Sie einen Vektor auf die Länge der Einheit
- vec
- Der Eingangsvektor
- result
- Der normierte Vektor
public static Vector3 Normalize(Vector3 vec)
result = Vector3.Normalize(vec)
Skalieren Sie einen Vektor auf die Länge der Einheit
- vec
- Der Eingangsvektor
Rückgabe: Der normierte Vektor
public static void NormalizeFast(Vector3 vec, Vector3 result)
Vector3.NormalizeFast(vec, result)
Skalieren Sie einen Vektor auf ungefähr die Länge einer Einheit
- vec
- Der Eingangsvektor
- result
- Der normierte Vektor
public static Vector3 NormalizeFast(Vector3 vec)
result = Vector3.NormalizeFast(vec)
Skalieren Sie einen Vektor auf ungefähr die Länge einer Einheit
- vec
- Der Eingangsvektor
Rückgabe: Der normierte Vektor
public void NormalizeFast()
vector3.NormalizeFast()
Skaliert den Vector3d auf ungefähr die Länge der Einheit.
public static Vector3 op_Addition(Vector3 left, Vector3 right)
result = Vector3.op_Addition(left, right)
Addiert zwei Instanzen.
- left
- Die erste Instanz.
- right
- Die zweite Instanz.
Rückgabe: Das Ergebnis der Berechnung.
public static Vector3 op_Division(double numerator, Vector3 vec)
result = Vector3.op_Division(numerator, vec)
Erstellt einen neuen Vektor, der der Zähler ist, der von jeder Komponente des Vektors abweichend ist.
- numerator
- vec
Rückgabe: Das Ergebnis der Berechnung.
public static Vector3 op_Division(Vector3 vec, double scale)
result = Vector3.op_Division(vec, scale)
Teilt eine Instanz durch einen Skalar.
- vec
- Die Instanz.
- scale
- Der Skalar.
Rückgabe: Das Ergebnis der Berechnung.
public static bool op_Equality(Vector3 left, Vector3 right)
result = Vector3.op_Equality(left, right)
Vergleicht zwei Beispiele für Gleichheit.
- left
- Die erste Instanz.
- right
- Die zweite Instanz.
Rückgabe: Wahrlich, wenn links gleich rechts ist; falsch anders.
public static bool op_Inequality(Vector3 left, Vector3 right)
result = Vector3.op_Inequality(left, right)
Vergleicht zwei Beispiele für Ungleichheit.
- left
- Die erste Instanz.
- right
- Die zweite Instanz.
Rückgabe: Wahr, wenn links nicht equa lright; falsch sonst.
public static Vector3 op_Multiply(double scale, Vector3 vec)
result = Vector3.op_Multiply(scale, vec)
Multipliziert eine Instanz mit einem Skalar.
- scale
- Der Skalar.
- vec
- Die Instanz.
Rückgabe: Das Ergebnis der Berechnung.
public static Vector3 op_Multiply(Vector3 vec, double scale)
result = Vector3.op_Multiply(vec, scale)
Multipliziert eine Instanz mit einem Skalar.
- vec
- Die Instanz.
- scale
- Der Skalar.
Rückgabe: Das Ergebnis der Berechnung.
public static Vector3 op_Multiply(Vector3 vecA, Vector3 vecB)
result = Vector3.op_Multiply(vecA, vecB)
Komponentenweise multiplizieren zwei Vektoren zusammen, x * x, y * y, z * z.
- vecA
- vecB
public static Vector3 op_Subtraction(Vector3 left, Vector3 right)
result = Vector3.op_Subtraction(left, right)
Subtrahiert zwei Instanzen.
- left
- Die erste Instanz.
- right
- Die zweite Instanz.
Rückgabe: Das Ergebnis der Berechnung.
public static Vector3 op_UnaryNegation(Vector3 vec)
result = Vector3.op_UnaryNegation(vec)
Verneint eine Instanz.
- vec
- Die Instanz.
Rückgabe: Das Ergebnis der Berechnung.
public static Vector3 Subtract(Vector3 a, Vector3 b)
result = Vector3.Subtract(a, b)
Subtrahieren Sie einen Vektor von einem anderen
- a
- erster Operand
- b
- zweiter Operand
Rückgabe: Ergebnis der Subtraktion
public static void Subtract(Vector3 a, Vector3 b, Vector3 result)
Vector3.Subtract(a, b, result)
Subtrahieren Sie einen Vektor von einem anderen
- a
- erster Operand
- b
- zweiter Operand
- result
- Ergebnis der Subtraktion
public override string ToString()
result = vector3.ToString()
Gibt ein System.String zurück, das den aktuellen Vector3 darstellt.
public static void Transform(Vector3[] vecArray, Quaternion rotationQuaternion)
Vector3.Transform(vecArray, rotationQuaternion)
Transformieren Sie alle Vektoren im Array durch die Quaternion-Rotation.
- vecArray
- rotationQuaternion
public static void Transform(Vector3 vec, Quaternion quat, Vector3 result)
Vector3.Transform(vec, quat, result)
Transformiert einen Vektor durch eine Quaternion-Rotation.
- vec
- Der Vektor zur Transformation.
- quat
- Die Quaternion, um den Vektor zu drehen.
- result
- Das Ergebnis der Operation.
public static void Transform(Vector3 vec, Matrix4X4 mat, Vector3 result)
Vector3.Transform(vec, mat, result)
Transformieren Sie einen Vektor durch die gegebene Matrix
- vec
- Der Vektor zur Transformation
- mat
- Die gewünschte Transformation
- result
- Der transformierte Vektor
public static Vector3 Transform(Vector3 vec, Quaternion quat)
result = Vector3.Transform(vec, quat)
Transformiert einen Vektor durch eine Quaternion-Rotation.
- vec
- Der Vektor zur Transformation.
- quat
- Die Quaternion, um den Vektor zu drehen.
Rückgabe: Das Ergebnis der Operation.
public static void Transform(Vector3[] vecArray, Matrix4X4 mat)
Vector3.Transform(vecArray, mat)
Transformieren Sie alle Vektoren im Array durch die angegebene Matrix.
public static Vector3 Transform(Vector3 vec, Matrix4X4 mat)
result = Vector3.Transform(vec, mat)
Transformieren Sie einen Vektor durch die gegebene Matrix
- vec
- Der Vektor zur Transformation
- mat
- Die gewünschte Transformation
Rückgabe: Der transformierte Vektor
public static void TransformNormal(Vector3 norm, Matrix4X4 mat, Vector3 result)
Vector3.TransformNormal(norm, mat, result)
Verwandeln Sie eine Normale durch die gegebene Matrix
- norm
- Das Normale zum Umwandeln
- mat
- Die gewünschte Transformation
- result
- Die transformierte Normalität
public static Vector3 TransformNormal(Vector3 norm, Matrix4X4 mat)
result = Vector3.TransformNormal(norm, mat)
Verwandeln Sie eine Normale durch die gegebene Matrix
- norm
- Das Normale zum Umwandeln
- mat
- Die gewünschte Transformation
Rückgabe: Die transformierte Normalität
public static void TransformNormalInverse(Vector3 norm, Matrix4X4 invMat, Vector3 result)
Vector3.TransformNormalInverse(norm, invMat, result)
Transformieren Sie eine Normale durch die (Transposition der) gegebenen Matrix
- norm
- Das Normale zum Umwandeln
- invMat
- Die Umkehrung der gewünschten Transformation
- result
- Die transformierte Normalität
public static Vector3 TransformNormalInverse(Vector3 norm, Matrix4X4 invMat)
result = Vector3.TransformNormalInverse(norm, invMat)
Transformieren Sie eine Normale durch die (Transposition der) gegebenen Matrix
- norm
- Das Normale zum Umwandeln
- invMat
- Die Umkehrung der gewünschten Transformation
Rückgabe: Die transformierte Normalität
public static Vector3 TransformPerspective(Vector3 vec, Matrix4X4 mat)
result = Vector3.TransformPerspective(vec, mat)
Transformieren Sie einen Vektor3d durch die gegebene Matrix und projizieren Sie den resultierenden Vektor4 zurück zu einem Vektor3
- vec
- Der Vektor zur Transformation
- mat
- Die gewünschte Transformation
Rückgabe: Der transformierte Vektor
public static void TransformPerspective(Vector3 vec, Matrix4X4 mat, Vector3 result)
Vector3.TransformPerspective(vec, mat, result)
Transformieren Sie einen Vector3d durch die gegebene Matrix und projizieren Sie den resultierenden Vector4d zurück zu einem Vector3d
- vec
- Der Vektor zur Transformation
- mat
- Die gewünschte Transformation
- result
- Der transformierte Vektor
public static void TransformPosition(Vector3 pos, Matrix4X4 mat, Vector3 result)
Vector3.TransformPosition(pos, mat, result)
Verwandeln Sie eine Position durch die gegebene Matrix
- pos
- Die Position zur Transformation
- mat
- Die gewünschte Transformation
- result
- Die transformierte Position
public static Vector3 TransformPosition(Vector3 pos, Matrix4X4 mat)
result = Vector3.TransformPosition(pos, mat)
Verwandeln Sie eine Position durch die gegebene Matrix
- pos
- Die Position zur Transformation
- mat
- Die gewünschte Transformation
Rückgabe: Die transformierte Position
public static void TransformVector(Vector3 vec, Matrix4X4 mat, Vector3 result)
Vector3.TransformVector(vec, mat, result)
Transformieren Sie einen Richtungsvektor durch die gegebenen Matrixannahmen Die Matrix hat eine untere Reihe von (0,0,0,1), dh der Übersetzungsteil wird ignoriert.
- vec
- Der Vektor zur Transformation
- mat
- Die gewünschte Transformation
- result
- Der transformierte Vektor
public static Vector3 TransformVector(Vector3 vec, Matrix4X4 mat)
result = Vector3.TransformVector(vec, mat)
Transformieren Sie einen Richtungsvektor durch die gegebenen Matrixannahmen Die Matrix hat eine untere Reihe von (0,0,0,1), dh der Übersetzungsteil wird ignoriert.
- vec
- Der Vektor zur Transformation
- mat
- Die gewünschte Transformation
Rückgabe: Der transformierte Vektor
Felder
public static readonly Vector3 NegativeInfinity
value = Vector3.NegativeInfinity
Definiert eine Instanz, wobei alle Komponenten auf negative Unendlichkeit gesetzt sind.
public static readonly Vector3 One
value = Vector3.One
Definiert eine Instanz mit allen Komponenten, die auf 1 gesetzt sind.
public static readonly Vector3 PositiveInfinity
value = Vector3.PositiveInfinity
Definiert eine Instanz, wobei alle Komponenten auf positiv unendlich gesetzt sind.
public static readonly int SizeInBytes
value = Vector3.SizeInBytes
Definiert die Größe der Vector3d-Struktur in Bytes.
public static readonly Vector3 UnitX
value = Vector3.UnitX
Definiert einen Einheitslängenvektor3d, der in Richtung der X-Achse zeigt.
public static readonly Vector3 UnitY
value = Vector3.UnitY
Definiert einen Einheitslängenvektor3d, der auf die Y-Achse zeigt.
public static readonly Vector3 UnitZ
value = Vector3.UnitZ
/// Definiert einen Einheitslängenvektor3d, der auf die Z-Achse zeigt.