Vector3
使用三个双精度浮点数表示3D向量。
实现: IEquatable<Vector3>
构造函数
public Vector3(double x, double y, double z)
vector3 = Vector3(x, y, z)
构造出一个新的矢量3。
- x
- 矢量3的x组件.
- y
- 矢量3的y组件.
- z
- 矢量3的z个元件.
public Vector3(Vector2 v, double z)
vector3 = Vector3(v, z)
从给定的矢量2d 构造出一个新实例。
- v
- 向量2d 复制组件从 。
- z
属性
public Vector2 Xy { get; set; }
value = vector3.Xy
vector3.Xy = value
获取或设置带有此实例的 X 和 Y 组件的 X OpenTK.Vector2d 。
方法
public static void Add(Vector3 a, Vector3 b, Vector3 result)
Vector3.Add(a, b, result)
添加两个向量 。
- a
- 左行经.
- b
- 右行经.
- result
- 运营结果.
public static Vector3 Add(Vector3 a, Vector3 b)
result = Vector3.Add(a, b)
添加两个向量 。
- a
- 左行经.
- b
- 右行经.
返回值: 运营结果.
public static void BaryCentric(Vector3 a, Vector3 b, Vector3 c, double u, double v, Vector3 result)
Vector3.BaryCentric(a, b, c, u, v, result)
使用 Barycentr 坐标将3 个矢量内插
- a
- 初入向量.
- b
- 第二输入矢量.
- c
- 第三入向量.
- u
- 第一贝利克星坐标.
- v
- 第二贝利克星座坐标.
- result
- 输出矢量. a 当u=v=0, b 当u=1, v=0, c 当u=0, v=1, 和 a,b, c 的线性组合, 否则
public static Vector3 BaryCentric(Vector3 a, Vector3 b, Vector3 c, double u, double v)
result = Vector3.BaryCentric(a, b, c, u, v)
使用 Barycentr 坐标将3 个矢量内插
- a
- 第一次输入矢量
- b
- 第二输入矢量
- c
- 第三个输入矢量
- u
- 第一个以贝利为中心坐标
- v
- 第二贝利克星座坐标
返回值: a 当u=v=0, b 当u=1,v=0, c 当u=0,v=1, 和 a,b,c的线性组合时,否则
public static void CalculateAngle(Vector3 first, Vector3 second, double result)
Vector3.CalculateAngle(first, second, result)
计算两个向量之间的角(以弧度计)。
- first
- 初向量相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相
- second
- 第二向量相.
- result
- 向量之间的角 (弧度).
public static double CalculateAngle(Vector3 first, Vector3 second)
result = Vector3.CalculateAngle(first, second)
计算两个向量之间的角(以弧度计)。
- first
- 初向量相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相
- second
- 第二向量相.
返回值: 向量之间的角 (弧度).
public static void Clamp(Vector3 vec, Vector3 min, Vector3 max, Vector3 result)
Vector3.Clamp(vec, min, max, result)
将矢量粘接到给定最小和最大矢量
- vec
- 输入向量
- min
- 最小向量
- max
- 最大向量
- result
- 夹住的向量
public static Vector3 Clamp(Vector3 vec, Vector3 min, Vector3 max)
result = Vector3.Clamp(vec, min, max)
将矢量粘接到给定最小和最大矢量
- vec
- 输入向量
- min
- 最小向量
- max
- 最大向量
返回值: 夹住的向量
public static Vector3 ComponentMax(Vector3 a, Vector3 b)
result = Vector3.ComponentMax(a, b)
计算两个向量的组件最大值
- a
- 首个操作
- b
- 第二行 :
返回值: 组件最大值
public static void ComponentMax(Vector3 a, Vector3 b, Vector3 result)
Vector3.ComponentMax(a, b, result)
计算两个向量的组件最大值
- a
- 首个操作
- b
- 第二行 :
- result
- 组件最大值
public static Vector3 ComponentMin(Vector3 a, Vector3 b)
result = Vector3.ComponentMin(a, b)
计算两个向量的最小组件
- a
- 首个操作
- b
- 第二行 :
返回值: 最低成分
public static void ComponentMin(Vector3 a, Vector3 b, Vector3 result)
Vector3.ComponentMin(a, b, result)
计算两个向量的最小组件
- a
- 首个操作
- b
- 第二行 :
- result
- 最低成分
public static void Cross(Vector3 left, Vector3 right, Vector3 result)
Vector3.Cross(left, right, result)
将两个向量的十字( 向量) 产品聚集在一起
- left
- 首个操作
- right
- 第二行 :
- result
- 两种投入的交叉产品
返回值: 两种投入的交叉产品
public static Vector3 Cross(Vector3 left, Vector3 right)
result = Vector3.Cross(left, right)
将两个向量的十字( 向量) 产品聚集在一起
- left
- 首个操作
- right
- 第二行 :
返回值: 两种投入的交叉产品
public static Vector3 Divide(Vector3 vector, Vector3 scale)
result = Vector3.Divide(vector, scale)
将矢量除以矢量(比例)的成分。
- vector
- 左行经.
- scale
- 右行经.
返回值: 手术结果。
public static void Divide(Vector3 vector, double scale, Vector3 result)
Vector3.Divide(vector, scale, result)
将矢量除以平面。
- vector
- 左行经.
- scale
- 右行经.
- result
- 手术结果。
public static Vector3 Divide(Vector3 vector, double scale)
result = Vector3.Divide(vector, scale)
将矢量除以平面。
- vector
- 左行经.
- scale
- 右行经.
返回值: 手术结果。
public static void Divide(Vector3 vector, Vector3 scale, Vector3 result)
Vector3.Divide(vector, scale, result)
将矢量除以矢量( 比例) 的组件 。
- vector
- 左行经.
- scale
- 右行经.
- result
- 手术结果。
public static void Dot(Vector3 left, Vector3 right, double result)
Vector3.Dot(left, right, result)
计算两个向量的点( scalar) 产物
- left
- 首个操作
- right
- 第二行 :
- result
- 两种投入的点出产物
public static double Dot(Vector3 left, Vector3 right)
result = Vector3.Dot(left, right)
计算两个向量的点( scalar) 产物
- left
- 首个操作
- right
- 第二行 :
返回值: 两种投入的点出产物
public bool Equals(Vector3 OtherVector, double ErrorValue)
result = vector3.Equals(OtherVector, ErrorValue)
指示此实例和指定对象在一个错误范围内是否相等。
- OtherVector
- ErrorValue
返回值: 如果情况相等,则属实;否则,则属实。
public bool Equals(Vector3 other)
result = vector3.Equals(other)
指示当前矢量是否等于另一个矢量。
- other
- 与此向量进行比较的向量 。
返回值: 如果当前矢量与矢量参数相等,则为真;否则,为假。
public override bool Equals(object obj)
result = vector3.Equals(obj)
指示此实例与指定的对象是否相等。
- obj
- 要比较的对象 。
返回值: 如果情况相等,则属实;否则,则属实。
public override int GetHashCode()
result = vector3.GetHashCode()
返回此实例的散列码 。
返回值: 包含此实例独有的散列码的 System.Int32 。
public static Vector3 Lerp(Vector3 a, Vector3 b, double blend)
result = Vector3.Lerp(a, b, blend)
返回一个新的矢量,即2个给定矢量的线性混合物
- a
- 第一个输入向量
- b
- 第二个输入向量
- blend
- 混合因子。 a 当混合=0, b 当混合=1。
返回值: a 当混合=0, b 当混合=1, 否则为线性组合
public static void Lerp(Vector3 a, Vector3 b, double blend, Vector3 result)
Vector3.Lerp(a, b, blend, result)
返回一个新的矢量,即2个给定矢量的线性混合物
- a
- 第一个输入向量
- b
- 第二个输入向量
- blend
- 混合因子。 a 当混合=0, b 当混合=1。
- result
- a 当混合=0, b 当混合=1, 否则为线性组合
public static Vector3 Max(Vector3 left, Vector3 right)
result = Vector3.Max(left, right)
返回最小分数的矢量3d
- left
- 左侧操作
- right
- 右行键
返回值: 最小矢量3
public static Vector3 Min(Vector3 left, Vector3 right)
result = Vector3.Min(left, right)
返回最小分数的矢量3d
- left
- 左侧操作
- right
- 右行键
返回值: 最小矢量3
public static Vector3 Multiply(Vector3 vector, double scale)
result = Vector3.Multiply(vector, scale)
用平板刀将矢量相乘.
- vector
- 左行经.
- scale
- 右行经.
返回值: 手术结果。
public static void Multiply(Vector3 vector, double scale, Vector3 result)
Vector3.Multiply(vector, scale, result)
用平板刀将矢量相乘.
- vector
- 左行经.
- scale
- 右行经.
- result
- 手术结果。
public static Vector3 Multiply(Vector3 vector, Vector3 scale)
result = Vector3.Multiply(vector, scale)
将矢量乘以组件为矢量(比例)。
- vector
- 左行经.
- scale
- 右行经.
返回值: 手术结果。
public static void Multiply(Vector3 vector, Vector3 scale, Vector3 result)
Vector3.Multiply(vector, scale, result)
将矢量乘以矢量(比例)的成分。
- vector
- 左行经.
- scale
- 右行经.
- result
- 手术结果。
public static void Normalize(Vector3 vec, Vector3 result)
Vector3.Normalize(vec, result)
将矢量缩放到单位长度
- vec
- 输入向量
- result
- 正常化的向量
public static Vector3 Normalize(Vector3 vec)
result = Vector3.Normalize(vec)
将矢量缩放到单位长度
- vec
- 输入向量
返回值: 正常化的向量
public static void NormalizeFast(Vector3 vec, Vector3 result)
Vector3.NormalizeFast(vec, result)
将矢量缩放到大约单位长度
- vec
- 输入向量
- result
- 正常化的向量
public static Vector3 NormalizeFast(Vector3 vec)
result = Vector3.NormalizeFast(vec)
将矢量缩放到大约单位长度
- vec
- 输入向量
返回值: 正常化的向量
public static Vector3 op_Addition(Vector3 left, Vector3 right)
result = Vector3.op_Addition(left, right)
添加两个实例。
- left
- 初一释.
- right
- 二证相.
返回值: 算出的结果.
public static Vector3 op_Division(double numerator, Vector3 vec)
result = Vector3.op_Division(numerator, vec)
创建一个新的矢量,它是由矢量的每个组件调取的数字。
- numerator
- vec
返回值: 算出的结果.
public static Vector3 op_Division(Vector3 vec, double scale)
result = Vector3.op_Division(vec, scale)
以平分一个实例。
- vec
- 例为.
- scale
- 斯伽罗.
返回值: 算出的结果.
public static bool op_Equality(Vector3 left, Vector3 right)
result = Vector3.op_Equality(left, right)
比较两个平等的例子。
- left
- 初一释.
- right
- 二证相.
返回值: 正确,如果左等右;否则是虚假的。
public static bool op_Inequality(Vector3 left, Vector3 right)
result = Vector3.op_Inequality(left, right)
比较了不平等的两个情况。
- left
- 初一释.
- right
- 二证相.
返回值: 没错,如果左侧不等于右;否则就是假的。
public static Vector3 op_Multiply(double scale, Vector3 vec)
result = Vector3.op_Multiply(scale, vec)
乘以一相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相
- scale
- 斯伽罗.
- vec
- 例为.
返回值: 算出的结果.
public static Vector3 op_Multiply(Vector3 vec, double scale)
result = Vector3.op_Multiply(vec, scale)
乘以一相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相
- vec
- 例为.
- scale
- 斯伽罗.
返回值: 算出的结果.
public static Vector3 op_Multiply(Vector3 vecA, Vector3 vecB)
result = Vector3.op_Multiply(vecA, vecB)
组件 智取相乘 二向量 并用, x*x, y*y, z*z .
- vecA
- vecB
public static Vector3 op_Subtraction(Vector3 left, Vector3 right)
result = Vector3.op_Subtraction(left, right)
减作二相.
- left
- 初一释.
- right
- 二证相.
返回值: 算出的结果.
public static Vector3 op_UnaryNegation(Vector3 vec)
result = Vector3.op_UnaryNegation(vec)
忽略了一个例子。
- vec
- 例为.
返回值: 算出的结果.
public static Vector3 Subtract(Vector3 a, Vector3 b)
result = Vector3.Subtract(a, b)
从另一个矢量中减掉一个矢量
- a
- 首个操作
- b
- 第二行 :
返回值: 减去结果
public static void Subtract(Vector3 a, Vector3 b, Vector3 result)
Vector3.Subtract(a, b, result)
从另一个矢量中减掉一个矢量
- a
- 首个操作
- b
- 第二行 :
- result
- 减去结果
public static void Transform(Vector3[] vecArray, Quaternion rotationQuaternion)
Vector3.Transform(vecArray, rotationQuaternion)
通过四角旋轉来转换阵列中的所有向量 。
- vecArray
- rotationQuaternion
public static void Transform(Vector3 vec, Quaternion quat, Vector3 result)
Vector3.Transform(vec, quat, result)
通过四角旋转来改变向量。
- vec
- 向量变相.
- quat
- 将矢量由四角旋转。
- result
- 手术结果.
public static void Transform(Vector3 vec, Matrix4X4 mat, Vector3 result)
Vector3.Transform(vec, mat, result)
由给定矩阵转换矢量
- vec
- 要变换的向量
- mat
- 期望的转变
- result
- 变形向量
public static Vector3 Transform(Vector3 vec, Quaternion quat)
result = Vector3.Transform(vec, quat)
通过四角旋转来改变向量。
- vec
- 向量变相.
- quat
- 将矢量由四角旋转。
返回值: 手术结果.
public static void Transform(Vector3[] vecArray, Matrix4X4 mat)
Vector3.Transform(vecArray, mat)
由给定矩阵来转换数组中的所有向量 。
public static Vector3 Transform(Vector3 vec, Matrix4X4 mat)
result = Vector3.Transform(vec, mat)
由给定矩阵转换矢量
- vec
- 要变换的向量
- mat
- 期望的转变
返回值: 变形向量
public static void TransformNormal(Vector3 norm, Matrix4X4 mat, Vector3 result)
Vector3.TransformNormal(norm, mat, result)
由给定矩阵转换一个正常
- norm
- 改变的正常情况
- mat
- 期望的转变
- result
- 变了的正常
public static Vector3 TransformNormal(Vector3 norm, Matrix4X4 mat)
result = Vector3.TransformNormal(norm, mat)
由给定矩阵转换一个正常
- norm
- 改变的正常情况
- mat
- 期望的转变
返回值: 变了的正常
public static void TransformNormalInverse(Vector3 norm, Matrix4X4 invMat, Vector3 result)
Vector3.TransformNormalInverse(norm, invMat, result)
由给定矩阵( 转出) 转换一个正常
- norm
- 改变的正常情况
- invMat
- 所期望的转变的倒向
- result
- 变了的正常
public static Vector3 TransformNormalInverse(Vector3 norm, Matrix4X4 invMat)
result = Vector3.TransformNormalInverse(norm, invMat)
由给定矩阵( 转出) 转换一个正常
- norm
- 改变的正常情况
- invMat
- 所期望的转变的倒向
返回值: 变了的正常
public static Vector3 TransformPerspective(Vector3 vec, Matrix4X4 mat)
result = Vector3.TransformPerspective(vec, mat)
由给定矩阵转换一个矢量3d,并预测由此而来向量4返回矢量3
- vec
- 要变换的向量
- mat
- 期望的转变
返回值: 变形向量
public static void TransformPerspective(Vector3 vec, Matrix4X4 mat, Vector3 result)
Vector3.TransformPerspective(vec, mat, result)
由给定矩阵转换一个矢量3d,并预测由此而来向量4d返回到矢量3d
- vec
- 要变换的向量
- mat
- 期望的转变
- result
- 变形向量
public static void TransformPosition(Vector3 pos, Matrix4X4 mat, Vector3 result)
Vector3.TransformPosition(pos, mat, result)
由给定矩阵转换一个位置
- pos
- 转变的立场
- mat
- 期望的转变
- result
- 转变后的职位
public static Vector3 TransformPosition(Vector3 pos, Matrix4X4 mat)
result = Vector3.TransformPosition(pos, mat)
由给定矩阵转换一个位置
- pos
- 转变的立场
- mat
- 期望的转变
返回值: 转变后的职位
public static void TransformVector(Vector3 vec, Matrix4X4 mat, Vector3 result)
Vector3.TransformVector(vec, mat, result)
由给定矩阵转换方向向量 假设矩阵有一个下行 (0, 0, 1),即翻译部分被忽略 。
- vec
- 要变换的向量
- mat
- 期望的转变
- result
- 变形向量
public static Vector3 TransformVector(Vector3 vec, Matrix4X4 mat)
result = Vector3.TransformVector(vec, mat)
由给定矩阵转换方向向量 假设矩阵有一个下行 (0, 0, 1),即翻译部分被忽略 。
- vec
- 要变换的向量
- mat
- 期望的转变
返回值: 变形向量
字段
public static readonly Vector3 NegativeInfinity
value = Vector3.NegativeInfinity
定义一个将所有组件设置为负无限的实例。
public static readonly Vector3 PositiveInfinity
value = Vector3.PositiveInfinity
定义一个所有组件设置为正无限的实例。