コード例 #1
0
        private void CalculateTransformationMatrix()
        {
            _transformationMatrix = MatrixAdapter.Create(Size, Size);
            double leftAngle  = _span.LeftNode.Angle * Math.PI / 180;
            double rightAngle = _span.RightNode.Angle * Math.PI / 180;

            _transformationMatrix[0, 0] = Math.Cos(leftAngle);
            _transformationMatrix[0, 1] = -Math.Sin(leftAngle);
            _transformationMatrix[1, 0] = Math.Sin(leftAngle);
            _transformationMatrix[1, 1] = Math.Cos(leftAngle);
            _transformationMatrix[2, 2] = 1;
            _transformationMatrix[3, 3] = Math.Cos(rightAngle);
            _transformationMatrix[3, 4] = -Math.Sin(rightAngle);
            _transformationMatrix[4, 3] = Math.Sin(rightAngle);
            _transformationMatrix[4, 4] = Math.Cos(rightAngle);
            _transformationMatrix[5, 5] = 1;
        }
コード例 #2
0
        private void SetMatrix()
        {
            Matrix = MatrixAdapter.Create(Size, Size);

            int i = 0;
            int j = 0;

            foreach (var position in MatrixOfPositions)
            {
                Matrix[j, i] = position.Value;
                i++;
                if (i % Size == 0)
                {
                    j++;
                    i = 0;
                }
            }
        }
コード例 #3
0
        public void SpanCalculate_Force_Success()
        {
            Mock <IStiffnessMatrix> stiffnessMatrix = new Mock <IStiffnessMatrix>();

            stiffnessMatrix.Setup(sm => sm.Matrix)
            .Returns(MatrixAdapter.Create(rows: 2, columns: 2, values: new double[4] {
                1, 2, 3, 4
            }));

            Mock <ISpan> span = new Mock <ISpan>();

            var spanCalculationEngine = new SpanCalculationEngine(span.Object, stiffnessMatrix.Object);
            var loadVector            = VectorAdapter.Create(values: new double[2] {
                2, 1
            });
            var displacements = VectorAdapter.Create(values: new double[2] {
                1, 3
            });

            spanCalculationEngine.CalculateForce(loadVector, displacements);

            Assert.That(spanCalculationEngine.Forces[0], Is.EqualTo(12));
            Assert.That(spanCalculationEngine.Forces[1], Is.EqualTo(15));
        }