Vector3

StockSharp.Xaml.Charting.Rendering.HighQualityRasterizer.Agg.VectorMath

Representa um vetor 3D usando três números de ponto flutuante de precisão dupla.

Implementa: IEquatable<Vector3>

Construtores

Vector3
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.
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
Vector3
public Vector3(Vector3 v)
vector3 = Vector3(v)

Construi uma nova instância a partir do Vector3d indicado.

v
O Vector3d para copiar componentes de.
Vector3
public Vector3(Vector4 v)
vector3 = Vector3(v)

Construi uma nova instância a partir do Vector4d indicado.

v
O Vector4d para copiar componentes.

Propriedades

Length
public double Length { get; }
value = vector3.Length

Obtém o comprimento (magnitude) do vetor.

LengthFast
public double LengthFast { get; }
value = vector3.LengthFast

Obtém uma aproximação do comprimento do vetor (magnitude).

LengthSquared
public double LengthSquared { get; }
value = vector3.LengthSquared

Obtém o quadrado do comprimento do vetor (magnitude).

Xy
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

Add
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.
Add
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.

BaryCentric
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
BaryCentric
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

CalculateAngle
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.
CalculateAngle
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.

Clamp
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
Clamp
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

ComponentMax
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

ComponentMax
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
ComponentMin
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

ComponentMin
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
Cross
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

Cross
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

Divide
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.

Divide
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.
Divide
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.

Divide
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.
Dot
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
Dot
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

Equals
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.

Equals
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.

Equals
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.

GetHashCode
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.

GetNormal
public Vector3 GetNormal()
result = vector3.GetNormal()

Devolve um vetor normalizado disto.

Lerp
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

Lerp
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
Max
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

Min
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

Multiply
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.

Multiply
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.
Multiply
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.

Multiply
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.
Normalize
public void Normalize()
vector3.Normalize()

Escala o Vector3d para o comprimento unitário.

Normalize
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
Normalize
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

NormalizeFast
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
NormalizeFast
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

NormalizeFast
public void NormalizeFast()
vector3.NormalizeFast()

Escala o Vector3d para aproximadamente o comprimento da unidade.

op_Addition
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.

op_Division
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.

op_Division
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.

op_Equality
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.

op_Inequality
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.

op_Multiply
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.

op_Multiply
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.

op_Multiply
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
op_Subtraction
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.

op_UnaryNegation
public static Vector3 op_UnaryNegation(Vector3 vec)
result = Vector3.op_UnaryNegation(vec)

Nega um caso.

vec
A instância.

Retorna: Resultado do cálculo.

Subtract
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

Subtract
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
ToString
public override string ToString()
result = vector3.ToString()

Devolve um System.String que representa o Vector3 atual.

Transform
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
Transform
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.
Transform
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
Transform
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.

Transform
public static void Transform(Vector3[] vecArray, Matrix4X4 mat)
Vector3.Transform(vecArray, mat)

Transformar todos os vetores na matriz pela matriz dada.

Transform
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

TransformNormal
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
TransformNormal
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

TransformNormalInverse
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
TransformNormalInverse
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

TransformPerspective
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

TransformPerspective
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
TransformPosition
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
TransformPosition
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

TransformVector
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
TransformVector
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

NegativeInfinity
public static readonly Vector3 NegativeInfinity
value = Vector3.NegativeInfinity

Define uma instância com todos os componentes definidos como infinito negativo.

One
public static readonly Vector3 One
value = Vector3.One

Define uma instância com todos os componentes definidos como 1.

PositiveInfinity
public static readonly Vector3 PositiveInfinity
value = Vector3.PositiveInfinity

Define uma instância com todos os componentes definidos para infinito positivo.

SizeInBytes
public static readonly int SizeInBytes
value = Vector3.SizeInBytes

Define o tamanho da estrutura Vector3d em bytes.

UnitX
public static readonly Vector3 UnitX
value = Vector3.UnitX

Define um Vector3d de comprimento unitário que aponta para o eixo X.

UnitY
public static readonly Vector3 UnitY
value = Vector3.UnitY

Define um Vector3d de comprimento unitário que aponta para o eixo Y.

UnitZ
public static readonly Vector3 UnitZ
value = Vector3.UnitZ

/// Define um Vector3d de comprimento unitário que aponta para o eixo Z.

x
public double x
value = vector3.x

O componente X do Vector3.

y
public double y
value = vector3.y

O componente Y do Vector3.

z
public double z
value = vector3.z

O componente Z do Vector3.

Zero
public static readonly Vector3 Zero
value = Vector3.Zero

Define um Vector3 de comprimento zero.