本文整理汇总了C#中Vertex.VectorProduct方法的典型用法代码示例。如果您正苦于以下问题:C# Vertex.VectorProduct方法的具体用法?C# Vertex.VectorProduct怎么用?C# Vertex.VectorProduct使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Vertex
的用法示例。
在下文中一共展示了Vertex.VectorProduct方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: EvaluateTrefoil
Vertex EvaluateTrefoil(float s, float t)
{
float TwoPi = (float)Math.PI * 2;
float a = 0.5f;
float b = 0.3f;
float c = 0.5f;
float d = 0.1f;
float u = (1 - s) * 2 * TwoPi;
float v = t * TwoPi;
float r = (float)(a + b * Math.Cos(1.5f * u));
float x = (float)(r * Math.Cos(u));
float y = (float)(r * Math.Sin(u));
float z = (float)(c * Math.Sin(1.5f * u));
Vertex dv;
dv.X = (float)(-1.5f * b * Math.Sin(1.5f * u) * Math.Cos(u) -
(a + b * Math.Cos(1.5f * u)) * Math.Sin(u));
dv.Y = (float)(-1.5f * b * Math.Sin(1.5f * u) * Math.Sin(u) +
(a + b * Math.Cos(1.5f * u)) * Math.Cos(u));
dv.Z = (float)(1.5f * c * Math.Cos(1.5f * u));
Vertex q = new Vertex(dv);
q.Normalize();
Vertex qvn = new Vertex(q.Y, -q.X, 0);
qvn.Normalize();
Vertex ww = q.VectorProduct(qvn);
Vertex range;
range.X = (float)(x + d * (qvn.X * Math.Cos(v) + ww.X * Math.Sin(v)));
range.Y = (float)(y + d * (qvn.Y * Math.Cos(v) + ww.Y * Math.Sin(v)));
range.Z = (float)(z + d * ww.Z * Math.Sin(v));
return range;
}