public IActionResult Calculation() { var graph = new OrientedGraph(new RelationsAdapter(Request.Query).Adapt()); var adjMatrix = graph.ToMatrix(); var graphInfo = new GraphInfo(graph); var taktsOfCreation = graphInfo.TactsOfCreation(); var taktsOfExtinction = graphInfo.TactsOfExtinction(); var taktsOfStore = graphInfo.TactsOfStore(); var inputs = graphInfo.Inputs; var outputs = graphInfo.Outputs; var power = graphInfo.Power; var powers = graphInfo.MatricesToZero; var bMatrix = new BMatrix(adjMatrix); var matrixAdapter = new MatrixAdapter(); var graphInfoAdapter = new GraphInfoAdapter(); return(Json(new { aMatrices = matrixAdapter.AdaptAdjacencyMatrixWithPowers(powers), graphInfo = graphInfoAdapter.AdaptGraphInfo(power, inputs, outputs), tactsTable = graphInfoAdapter.AdaptTacts(taktsOfCreation, taktsOfExtinction, taktsOfStore), bMatrix = matrixAdapter.AdaptBMatrix(bMatrix) })); }
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; }
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; } } }
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)); }