本文整理汇总了C#中Scientrace.crossProduct方法的典型用法代码示例。如果您正苦于以下问题:C# Scientrace.crossProduct方法的具体用法?C# Scientrace.crossProduct怎么用?C# Scientrace.crossProduct使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Scientrace
的用法示例。
在下文中一共展示了Scientrace.crossProduct方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: VectorTransform
public VectorTransform(Scientrace.NonzeroVector u, Scientrace.NonzeroVector v, int swapz)
{
//third base coordinate orthogonal on both u and v.
Scientrace.Vector w = u.crossProduct(v).tryToUnitVector();
switch (swapz) {
case VectorTransform.SWAP_U_WITH_W:
//for some reasons it might be usefull to change u and w
this.inituvw(w,v,u);
break;
case VectorTransform.SWAP_V_WITH_W:
//or v and w
this.inituvw(u,w,v);
break;
default:
//normal init
this.inituvw(u,v,w);
break;
}
}
示例2: getX3DRotationTag
public string getX3DRotationTag(Scientrace.NonzeroVector fromVector, Scientrace.NonzeroVector toVector)
{
Scientrace.Vector r = fromVector.crossProduct(toVector);
double angle =
Math.Acos(toVector.normalized().dotProduct(fromVector.normalized())) // the angle to be rotated
* Math.Sign(r.crossProduct(fromVector).dotProduct(toVector));
try {
return "<Transform rotation='"+r.tryToUnitVector().trico()+" "+angle+"' >";
} catch { // if fromVector has the same direction as toVector, the crossProduct is a zerovector which cannot be normalized.
return "<Transform>"; //no transformation, just open so it can be closed afterwards
}
}
示例3: fillOrtogonalVectors
public void fillOrtogonalVectors(ref Scientrace.NonzeroVector refVec1, ref Scientrace.NonzeroVector refVec2)
{
Scientrace.UnitVector tRefvec = Scientrace.UnitVector.x1vector();
if (Math.Abs(this.toUnitVector().dotProduct(tRefvec))>0.8) {
tRefvec = Scientrace.UnitVector.y1vector();
}
refVec1 = tRefvec.crossProduct(this).tryToUnitVector();
refVec2 = refVec1.crossProduct(this).tryToUnitVector();
}