当前位置: 首页>>代码示例>>C#>>正文


C# Matrix4.Multiply方法代码示例

本文整理汇总了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;
        }
开发者ID:eastcm,项目名称:RobSim,代码行数:57,代码来源:IRob.cs


注:本文中的Matrix4.Multiply方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。