本文整理汇总了C#中Matrix4.Multiply方法的典型用法代码示例。如果您正苦于以下问题:C# Matrix4.Multiply方法的具体用法?C# Matrix4.Multiply怎么用?C# Matrix4.Multiply使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Matrix4
的用法示例。
在下文中一共展示了Matrix4.Multiply方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: GetLinkPositions
public List<Position> GetLinkPositions(Position newBase)
{
List<Position> positions = new List<Position>();
Point prior = new Point(newBase.X, newBase.Y, newBase.Z);
Position tempPosition;
Matrix4 tempMatrix = new Matrix4();
Matrix4 A1 = GetLinkTransformation(new Link(-TAxs.X * Math.PI / 180, 400, 25, -Math.PI / 2));
Matrix4 A2 = GetLinkTransformation(new Link(TAxs.Y * Math.PI / 180, 0, 455, 0));
Matrix4 A3 = GetLinkTransformation(new Link(TAxs.Z * Math.PI / 180 - Math.PI / 2, 0, 35, -Math.PI / 2));
Matrix4 A4 = GetLinkTransformation(new Link(-TAxs.A * Math.PI / 180, 420, 0, Math.PI / 2));
Matrix4 A5 = GetLinkTransformation(new Link(TAxs.B * Math.PI / 180 + Math.PI, 0, 0, Math.PI / 2));
Matrix4 A6 = GetLinkTransformation(new Link(-TAxs.C * Math.PI / 180, 80, 0, 0));
tempPosition = GetLinkTransformationPosition(A1);
tempPosition.Rotate(newBase.A, newBase.B, newBase.C);
tempPosition.Translate(newBase.X, newBase.Y, newBase.Z);
positions.Add(tempPosition);
Matrix4 sumMatrix = new Matrix4();
sumMatrix.Multiply(A1, A2);
tempMatrix = sumMatrix;
tempPosition = GetLinkTransformationPosition(tempMatrix);
tempPosition.Rotate(newBase.A, newBase.B, newBase.C);
tempPosition.Translate(newBase.X, newBase.Y, newBase.Z);
positions.Add(tempPosition);
sumMatrix.Multiply(tempMatrix, A3);
tempMatrix = sumMatrix;
tempPosition = GetLinkTransformationPosition(tempMatrix);
tempPosition.Rotate(newBase.A, newBase.B, newBase.C);
tempPosition.Translate(newBase.X, newBase.Y, newBase.Z);
positions.Add(tempPosition);
sumMatrix.Multiply(tempMatrix, A4);
tempMatrix = sumMatrix;
tempPosition = GetLinkTransformationPosition(tempMatrix);
tempPosition.Rotate(newBase.A, newBase.B, newBase.C);
tempPosition.Translate(newBase.X, newBase.Y, newBase.Z);
positions.Add(tempPosition);
sumMatrix.Multiply(tempMatrix, A5);
tempMatrix = sumMatrix;
tempPosition = GetLinkTransformationPosition(tempMatrix);
tempPosition.Rotate(newBase.A, newBase.B, newBase.C);
tempPosition.Translate(newBase.X, newBase.Y, newBase.Z);
positions.Add(tempPosition);
sumMatrix.Multiply(tempMatrix, A6);
tempMatrix = sumMatrix;
tempPosition = GetLinkTransformationPosition(tempMatrix);
tempPosition.Rotate(newBase.A, newBase.B, newBase.C);
tempPosition.Translate(newBase.X, newBase.Y, newBase.Z);
positions.Add(tempPosition);
return positions;
}