Vector3
Representa um vetor 3D usando três números de ponto flutuante de precisão dupla.
Implementa: IEquatable<Vector3>
Construtores
public Vector3(double x, double y, double z)
vector3 = Vector3(x, y, z)
Construi um novo Vector3.
- x
- O componente x do Vector3.
- y
- O componente y do Vector3.
- z
- O componente z do Vector3.
public Vector3(Vector2 v, double z)
vector3 = Vector3(v, z)
Construi uma nova instância a partir do Vector2d indicado.
- v
- O Vector2d para copiar componentes de.
- z
public Vector3(Vector3 v)
vector3 = Vector3(v)
Construi uma nova instância a partir do Vector3d indicado.
- v
- O Vector3d para copiar componentes de.
public Vector3(Vector4 v)
vector3 = Vector3(v)
Construi uma nova instância a partir do Vector4d indicado.
- v
- O Vector4d para copiar componentes.
Propriedades
public double Length { get; }
value = vector3.Length
Obtém o comprimento (magnitude) do vetor.
public double LengthFast { get; }
value = vector3.LengthFast
Obtém uma aproximação do comprimento do vetor (magnitude).
public double LengthSquared { get; }
value = vector3.LengthSquared
Obtém o quadrado do comprimento do vetor (magnitude).
public Vector2 Xy { get; set; }
value = vector3.Xy
vector3.Xy = value
Obtém ou define um OpenTK.Vector2d com os componentes X e Y desta instância.
Métodos
public static void Add(Vector3 a, Vector3 b, Vector3 result)
Vector3.Add(a, b, result)
Adiciona dois vectores.
- a
- Operário esquerdo.
- b
- Operário à direita.
- result
- Resultado da operação.
public static Vector3 Add(Vector3 a, Vector3 b)
result = Vector3.Add(a, b)
Adiciona dois vectores.
- a
- Operário esquerdo.
- b
- Operário à direita.
Retorna: Resultado da operação.
public static void BaryCentric(Vector3 a, Vector3 b, Vector3 c, double u, double v, Vector3 result)
Vector3.BaryCentric(a, b, c, u, v, result)
Interpolar 3 Vetores usando coordenadas Barycentric
- a
- Primeira entrada Vector.
- b
- Vetor de segunda entrada.
- c
- Vetor de terceira entrada.
- u
- Primeira coordenada Barycêntrica.
- v
- Segunda Coordenadas Barycêntricas.
- result
- Vetor de Saída. a quando u=v=0, b quando u=1,v=0, c quando u=0,v=1, e uma combinação linear de a,b,c caso contrário
public static Vector3 BaryCentric(Vector3 a, Vector3 b, Vector3 c, double u, double v)
result = Vector3.BaryCentric(a, b, c, u, v)
Interpolar 3 Vetores usando coordenadas Barycentric
- a
- Vetor de primeira entrada
- b
- Vetor de segunda entrada
- c
- Vetor de terceira entrada
- u
- Primeira Coordenadas Barycêntricas
- v
- Segunda Coordenadas Barycêntricas
Retorna: a quando u=v=0, b quando u=1,v=0, c quando u=0,v=1, e uma combinação linear de a,b,c caso contrário
public static void CalculateAngle(Vector3 first, Vector3 second, double result)
Vector3.CalculateAngle(first, second, result)
Calcula o ângulo (em radianos) entre dois vetores.
- first
- O primeiro vector.
- second
- O segundo vetor.
- result
- Ângulo (em radianos) entre os vetores.
public static double CalculateAngle(Vector3 first, Vector3 second)
result = Vector3.CalculateAngle(first, second)
Calcula o ângulo (em radianos) entre dois vetores.
- first
- O primeiro vector.
- second
- O segundo vetor.
Retorna: Ângulo (em radianos) entre os vetores.
public static void Clamp(Vector3 vec, Vector3 min, Vector3 max, Vector3 result)
Vector3.Clamp(vec, min, max, result)
Grampear um vector para os vectores mínimos e máximos indicados
- vec
- Vetor de entrada
- min
- Vetor mínimo
- max
- Vetor máximo
- result
- O vetor pinçado
public static Vector3 Clamp(Vector3 vec, Vector3 min, Vector3 max)
result = Vector3.Clamp(vec, min, max)
Grampear um vector para os vectores mínimos e máximos indicados
- vec
- Vetor de entrada
- min
- Vetor mínimo
- max
- Vetor máximo
Retorna: O vetor pinçado
public static Vector3 ComponentMax(Vector3 a, Vector3 b)
result = Vector3.ComponentMax(a, b)
Calcular o máximo de dois vectores em relação ao componente
- a
- Primeiro operando
- b
- Segundo operando
Retorna: O máximo do componente
public static void ComponentMax(Vector3 a, Vector3 b, Vector3 result)
Vector3.ComponentMax(a, b, result)
Calcular o máximo de dois vectores em relação ao componente
- a
- Primeiro operando
- b
- Segundo operando
- result
- O máximo do componente
public static Vector3 ComponentMin(Vector3 a, Vector3 b)
result = Vector3.ComponentMin(a, b)
Calcular o mínimo de dois vectores em relação ao componente
- a
- Primeiro operando
- b
- Segundo operando
Retorna: O mínimo do componente
public static void ComponentMin(Vector3 a, Vector3 b, Vector3 result)
Vector3.ComponentMin(a, b, result)
Calcular o mínimo de dois vectores em relação ao componente
- a
- Primeiro operando
- b
- Segundo operando
- result
- O mínimo do componente
public static void Cross(Vector3 left, Vector3 right, Vector3 result)
Vector3.Cross(left, right, result)
Caclile o produto cruzado (vector) de dois vectores
- left
- Primeiro operando
- right
- Segundo operando
- result
- O produto cruzado dos dois inputs
Retorna: O produto cruzado dos dois inputs
public static Vector3 Cross(Vector3 left, Vector3 right)
result = Vector3.Cross(left, right)
Caclile o produto cruzado (vector) de dois vectores
- left
- Primeiro operando
- right
- Segundo operando
Retorna: O produto cruzado dos dois inputs
public static Vector3 Divide(Vector3 vector, Vector3 scale)
result = Vector3.Divide(vector, scale)
Dividi um vetor pelos componentes de um vetor (escala).
- vector
- Operário esquerdo.
- scale
- Operário à direita.
Retorna: Resultado da operação.
public static void Divide(Vector3 vector, double scale, Vector3 result)
Vector3.Divide(vector, scale, result)
Dividi um vector por um escalar.
- vector
- Operário esquerdo.
- scale
- Operário à direita.
- result
- Resultado da operação.
public static Vector3 Divide(Vector3 vector, double scale)
result = Vector3.Divide(vector, scale)
Dividi um vector por um escalar.
- vector
- Operário esquerdo.
- scale
- Operário à direita.
Retorna: Resultado da operação.
public static void Divide(Vector3 vector, Vector3 scale, Vector3 result)
Vector3.Divide(vector, scale, result)
Dividir um vetor pelos componentes de um vetor (escala).
- vector
- Operário esquerdo.
- scale
- Operário à direita.
- result
- Resultado da operação.
public static void Dot(Vector3 left, Vector3 right, double result)
Vector3.Dot(left, right, result)
Calcular o produto do ponto (escalar) de dois vectores
- left
- Primeiro operando
- right
- Segundo operando
- result
- O produto ponto dos dois inputs
public static double Dot(Vector3 left, Vector3 right)
result = Vector3.Dot(left, right)
Calcular o produto do ponto (escalar) de dois vectores
- left
- Primeiro operando
- right
- Segundo operando
Retorna: O produto ponto dos dois inputs
public bool Equals(Vector3 OtherVector, double ErrorValue)
result = vector3.Equals(OtherVector, ErrorValue)
Indica se esta instância e um objeto especificado são iguais dentro de um intervalo de erro.
- OtherVector
- ErrorValue
Retorna: Verdadeiro se as instâncias são iguais; falso caso contrário.
public bool Equals(Vector3 other)
result = vector3.Equals(other)
Indica se o vetor atual é igual a outro vetor.
- other
- Um vetor para comparar com este vetor.
Retorna: true se o vetor atual é igual ao parâmetro vetor; caso contrário, false.
public override bool Equals(object obj)
result = vector3.Equals(obj)
Indica se esta instância e um objeto especificado são iguais.
- obj
- O objeto a comparar.
Retorna: Verdadeiro se as instâncias são iguais; falso caso contrário.
public override int GetHashCode()
result = vector3.GetHashCode()
Devolve o hashcode para este exemplo.
Retorna: Um System.Int32 contendo o hashcode único para esta instância.
public Vector3 GetNormal()
result = vector3.GetNormal()
Devolve um vetor normalizado disto.
public static Vector3 Lerp(Vector3 a, Vector3 b, double blend)
result = Vector3.Lerp(a, b, blend)
Retorna um novo Vector que é a mistura linear dos 2 Vetores dados
- a
- Primeiro vetor de entrada
- b
- Segundo vetor de entrada
- blend
- O fator de mistura. a quando a mistura=0, b quando a mistura=1.
Retorna: a quando a mistura=0, b quando a mistura=1, e uma combinação linear caso contrário
public static void Lerp(Vector3 a, Vector3 b, double blend, Vector3 result)
Vector3.Lerp(a, b, blend, result)
Retorna um novo Vector que é a mistura linear dos 2 Vetores dados
- a
- Primeiro vetor de entrada
- b
- Segundo vetor de entrada
- blend
- O fator de mistura. a quando a mistura=0, b quando a mistura=1.
- result
- a quando a mistura=0, b quando a mistura=1, e uma combinação linear caso contrário
public static Vector3 Max(Vector3 left, Vector3 right)
result = Vector3.Max(left, right)
Retorna o Vector3d com a magnitude mínima
- left
- Operante esquerdo
- right
- Operação direita
Retorna: O Vector mínimo3
public static Vector3 Min(Vector3 left, Vector3 right)
result = Vector3.Min(left, right)
Retorna o Vector3d com a magnitude mínima
- left
- Operante esquerdo
- right
- Operação direita
Retorna: O Vector mínimo3
public static Vector3 Multiply(Vector3 vector, double scale)
result = Vector3.Multiply(vector, scale)
Multiplica um vector por um escalar.
- vector
- Operário esquerdo.
- scale
- Operário à direita.
Retorna: Resultado da operação.
public static void Multiply(Vector3 vector, double scale, Vector3 result)
Vector3.Multiply(vector, scale, result)
Multiplica um vector por um escalar.
- vector
- Operário esquerdo.
- scale
- Operário à direita.
- result
- Resultado da operação.
public static Vector3 Multiply(Vector3 vector, Vector3 scale)
result = Vector3.Multiply(vector, scale)
Multiplica um vetor pelos componentes um vetor (escala).
- vector
- Operário esquerdo.
- scale
- Operário à direita.
Retorna: Resultado da operação.
public static void Multiply(Vector3 vector, Vector3 scale, Vector3 result)
Vector3.Multiply(vector, scale, result)
Multiplica um vetor pelos componentes de um vetor (escala).
- vector
- Operário esquerdo.
- scale
- Operário à direita.
- result
- Resultado da operação.
public void Normalize()
vector3.Normalize()
Escala o Vector3d para o comprimento unitário.
public static void Normalize(Vector3 vec, Vector3 result)
Vector3.Normalize(vec, result)
Escalar um vetor para o comprimento unitário
- vec
- O vetor de entrada
- result
- O vetor normalizado
public static Vector3 Normalize(Vector3 vec)
result = Vector3.Normalize(vec)
Escalar um vetor para o comprimento unitário
- vec
- O vetor de entrada
Retorna: O vetor normalizado
public static void NormalizeFast(Vector3 vec, Vector3 result)
Vector3.NormalizeFast(vec, result)
Escalar um vector para aproximadamente o comprimento unitário
- vec
- O vetor de entrada
- result
- O vetor normalizado
public static Vector3 NormalizeFast(Vector3 vec)
result = Vector3.NormalizeFast(vec)
Escalar um vector para aproximadamente o comprimento unitário
- vec
- O vetor de entrada
Retorna: O vetor normalizado
public void NormalizeFast()
vector3.NormalizeFast()
Escala o Vector3d para aproximadamente o comprimento da unidade.
public static Vector3 op_Addition(Vector3 left, Vector3 right)
result = Vector3.op_Addition(left, right)
Adiciona duas instâncias.
- left
- A primeira instância.
- right
- A segunda instância.
Retorna: Resultado do cálculo.
public static Vector3 op_Division(double numerator, Vector3 vec)
result = Vector3.op_Division(numerator, vec)
Cria um novo vetor que é o numerador dividido por cada componente do vetor.
- numerator
- vec
Retorna: Resultado do cálculo.
public static Vector3 op_Division(Vector3 vec, double scale)
result = Vector3.op_Division(vec, scale)
Dividi uma instância por um escalar.
- vec
- A instância.
- scale
- O escalar.
Retorna: Resultado do cálculo.
public static bool op_Equality(Vector3 left, Vector3 right)
result = Vector3.op_Equality(left, right)
Compara duas instâncias para igualdade.
- left
- A primeira instância.
- right
- A segunda instância.
Retorna: Verdade, se a esquerda é igual à direita; falsa de outra forma.
public static bool op_Inequality(Vector3 left, Vector3 right)
result = Vector3.op_Inequality(left, right)
Compara duas instâncias para a desigualdade.
- left
- A primeira instância.
- right
- A segunda instância.
Retorna: É verdade que se a esquerda não estiver à direita, não estará errada.
public static Vector3 op_Multiply(double scale, Vector3 vec)
result = Vector3.op_Multiply(scale, vec)
Multiplica uma instância por um escalar.
- scale
- O escalar.
- vec
- A instância.
Retorna: Resultado do cálculo.
public static Vector3 op_Multiply(Vector3 vec, double scale)
result = Vector3.op_Multiply(vec, scale)
Multiplica uma instância por um escalar.
- vec
- A instância.
- scale
- O escalar.
Retorna: Resultado do cálculo.
public static Vector3 op_Multiply(Vector3 vecA, Vector3 vecB)
result = Vector3.op_Multiply(vecA, vecB)
Componente sábio multiplicar dois vetores juntos, x*x, y*y, z*z.
- vecA
- vecB
public static Vector3 op_Subtraction(Vector3 left, Vector3 right)
result = Vector3.op_Subtraction(left, right)
Subtrai duas instâncias.
- left
- A primeira instância.
- right
- A segunda instância.
Retorna: Resultado do cálculo.
public static Vector3 op_UnaryNegation(Vector3 vec)
result = Vector3.op_UnaryNegation(vec)
Nega um caso.
- vec
- A instância.
Retorna: Resultado do cálculo.
public static Vector3 Subtract(Vector3 a, Vector3 b)
result = Vector3.Subtract(a, b)
Subtrair um Vector de outro
- a
- Primeiro operando
- b
- Segundo operando
Retorna: Resultado da subtração
public static void Subtract(Vector3 a, Vector3 b, Vector3 result)
Vector3.Subtract(a, b, result)
Subtrair um Vector de outro
- a
- Primeiro operando
- b
- Segundo operando
- result
- Resultado da subtração
public override string ToString()
result = vector3.ToString()
Devolve um System.String que representa o Vector3 atual.
public static void Transform(Vector3[] vecArray, Quaternion rotationQuaternion)
Vector3.Transform(vecArray, rotationQuaternion)
Transformar todos os vetores na matriz pela rotação do quaternião.
- vecArray
- rotationQuaternion
public static void Transform(Vector3 vec, Quaternion quat, Vector3 result)
Vector3.Transform(vec, quat, result)
Transforma um vector por uma rotação de quaternião.
- vec
- O vector a transformar.
- quat
- O quaternião para rodar o vetor.
- result
- O resultado da operação.
public static void Transform(Vector3 vec, Matrix4X4 mat, Vector3 result)
Vector3.Transform(vec, mat, result)
Transformar um vetor pela matriz dada
- vec
- O vetor a transformar
- mat
- A transformação desejada
- result
- O vetor transformado
public static Vector3 Transform(Vector3 vec, Quaternion quat)
result = Vector3.Transform(vec, quat)
Transforma um vector por uma rotação de quaternião.
- vec
- O vector a transformar.
- quat
- O quaternião para rodar o vetor.
Retorna: O resultado da operação.
public static void Transform(Vector3[] vecArray, Matrix4X4 mat)
Vector3.Transform(vecArray, mat)
Transformar todos os vetores na matriz pela matriz dada.
public static Vector3 Transform(Vector3 vec, Matrix4X4 mat)
result = Vector3.Transform(vec, mat)
Transformar um vetor pela matriz dada
- vec
- O vetor a transformar
- mat
- A transformação desejada
Retorna: O vetor transformado
public static void TransformNormal(Vector3 norm, Matrix4X4 mat, Vector3 result)
Vector3.TransformNormal(norm, mat, result)
Transformar um Normal pela Matriz dada
- norm
- O normal para transformar
- mat
- A transformação desejada
- result
- O normal transformado
public static Vector3 TransformNormal(Vector3 norm, Matrix4X4 mat)
result = Vector3.TransformNormal(norm, mat)
Transformar um Normal pela Matriz dada
- norm
- O normal para transformar
- mat
- A transformação desejada
Retorna: O normal transformado
public static void TransformNormalInverse(Vector3 norm, Matrix4X4 invMat, Vector3 result)
Vector3.TransformNormalInverse(norm, invMat, result)
Transformar um Normal pela (transposição da) Matriz dada
- norm
- O normal para transformar
- invMat
- O inverso da transformação desejada
- result
- O normal transformado
public static Vector3 TransformNormalInverse(Vector3 norm, Matrix4X4 invMat)
result = Vector3.TransformNormalInverse(norm, invMat)
Transformar um Normal pela (transposição da) Matriz dada
- norm
- O normal para transformar
- invMat
- O inverso da transformação desejada
Retorna: O normal transformado
public static Vector3 TransformPerspective(Vector3 vec, Matrix4X4 mat)
result = Vector3.TransformPerspective(vec, mat)
Transforme um Vector3d pela matriz dada, e projete o Vector4 resultante de volta para um Vector3
- vec
- O vetor a transformar
- mat
- A transformação desejada
Retorna: O vetor transformado
public static void TransformPerspective(Vector3 vec, Matrix4X4 mat, Vector3 result)
Vector3.TransformPerspective(vec, mat, result)
Transforme um Vector3d pela matriz dada, e projete o Vector4d resultante de volta para um Vector3d
- vec
- O vetor a transformar
- mat
- A transformação desejada
- result
- O vetor transformado
public static void TransformPosition(Vector3 pos, Matrix4X4 mat, Vector3 result)
Vector3.TransformPosition(pos, mat, result)
Transformar uma posição pela matriz dada
- pos
- A posição a transformar
- mat
- A transformação desejada
- result
- A posição transformada
public static Vector3 TransformPosition(Vector3 pos, Matrix4X4 mat)
result = Vector3.TransformPosition(pos, mat)
Transformar uma posição pela matriz dada
- pos
- A posição a transformar
- mat
- A transformação desejada
Retorna: A posição transformada
public static void TransformVector(Vector3 vec, Matrix4X4 mat, Vector3 result)
Vector3.TransformVector(vec, mat, result)
Transformar um vetor de direção pela matriz dada Assume que a matriz tem uma linha inferior de (0,0,0,1), que é a parte de tradução é ignorada.
- vec
- O vetor a transformar
- mat
- A transformação desejada
- result
- O vetor transformado
public static Vector3 TransformVector(Vector3 vec, Matrix4X4 mat)
result = Vector3.TransformVector(vec, mat)
Transformar um vetor de direção pela matriz dada Assume que a matriz tem uma linha inferior de (0,0,0,1), que é a parte de tradução é ignorada.
- vec
- O vetor a transformar
- mat
- A transformação desejada
Retorna: O vetor transformado
Campos
public static readonly Vector3 NegativeInfinity
value = Vector3.NegativeInfinity
Define uma instância com todos os componentes definidos como infinito negativo.
public static readonly Vector3 One
value = Vector3.One
Define uma instância com todos os componentes definidos como 1.
public static readonly Vector3 PositiveInfinity
value = Vector3.PositiveInfinity
Define uma instância com todos os componentes definidos para infinito positivo.
public static readonly int SizeInBytes
value = Vector3.SizeInBytes
Define o tamanho da estrutura Vector3d em bytes.
public static readonly Vector3 UnitX
value = Vector3.UnitX
Define um Vector3d de comprimento unitário que aponta para o eixo X.
public static readonly Vector3 UnitY
value = Vector3.UnitY
Define um Vector3d de comprimento unitário que aponta para o eixo Y.
public static readonly Vector3 UnitZ
value = Vector3.UnitZ
/// Define um Vector3d de comprimento unitário que aponta para o eixo Z.
public static readonly Vector3 Zero
value = Vector3.Zero
Define um Vector3 de comprimento zero.