Registriert seit: 28. Feb 2011
Ort: Mannheim
1.384 Beiträge
Delphi 10.4 Sydney
|
Matrix 90 Grad um Z-Achse drehen
14. Jan 2016, 12:45
Ich hab eine Matrix, die sieht so aus. Diese Matrix ist bezüglich dieses KOO definiert.
Delphi-Quellcode:
function TZzBeamTools.BeamSmLc(const E, G, Iy, It, x1, y1, x2, y2: double): TZzFloatMat1212;
var
I, J: integer;
S, SS, SSS, EIy, GIt : double;
begin
GIt := G * It;
EIy := E * Iy;
S := Sqrt(Sqr(x2 - x1) + Sqr(y2 - y1)); // z1 = z2 = 0;
SS := S * S;
SSS := SS * S;
for I := 1 to 12 do
for J := 1 to 12 do
Result[I, J] := 0;
// Result[I, J] = Schnittkraft Si infolge Vj;
// Si: Q = Querkraft, M = Moment;
// Vj: V = Verschiebung, Phi = Verdrehung;
Result[3, 3] := 12 * EIy / SSS; // S3(= Q.Z.L) infolge V3(= V.Z.L) = 1;
Result[3, 5] := -6 * EIy / SS; // S3(= Q.Z.L) infolge V5(= Phi.Y.L) = 1;
Result[3, 9] := -12 * EIy / SSS; // S3(= Q.Z.L) infolge V9(= V.Z.R) = 1;
Result[3, 11] := -6 * EIy / SS; // S3(= Q.Z.L) infolge V11(= Phi.Y.R) = 1;
Result[4, 4] := GIt / S; // S4(= M.X.L) infolge V4(= Phi.X.L) = 1;
Result[4, 10] := -GIt / S; // S4(= M.X.L) infolge V10(= Phi.X.R) = 1;
Result[5, 5] := 4 * EIy / S; // S5(= M.Y.L) infolge V5(= Phi.Y.L) = 1;
Result[5, 9] := 6 * EIy / SS; // S5(= M.Y.L) infolge V9(= V.Z.R) = 1;
Result[5, 11] := 2 * EIy / S; // S5(= M.Y.L) infolge V11(= Phi.Y.R) = 1;
Result[9, 9] := 12 * EIy / SSS; // S9(= Q.Z.R) infolge V9(= V.Z.R) = 1;
Result[9, 11] := 6 * EIy / SS; // S9(= Q.Z.R) infolge V11(= Phi.Y.R) = 1;
Result[10, 10] := GIt / S; // S10(= M.X.R) infolge V10(= Phi.X.R) = 1;
Result[11, 11] := 4 * EIy / S; // S11(= M.Y.R) infolge V11(= Phi.Y.R) = 1;
for I := 1 to 11 do
for J := I + 1 to 12 do
Result[J, I] := Result[I, J]; // Symmetrisch ergänzen;
end;
Damit ich diese Matrix weiterverarbeiten kann, brauche ich sie bezüglich dieses KOO-Systems.
Nun wollte ich die Matrix 90 Grad um die Z-Achse drehen. Weiß jemand wie das geht?
|
|
Zitat
|