From cb972616726310ccc27d26b4c208d38fdaf6ddf8 Mon Sep 17 00:00:00 2001 From: laemmerzahlkr91200 Date: Sun, 9 Nov 2025 17:29:05 +0100 Subject: [PATCH] _Nachtrag Bug fix --- TestingGround_ChatGPT_Kris.exe | Bin 70709 -> 47759 bytes gamematrix.exe | Bin 47338 -> 50823 bytes includes/TestingGround_ChatGPT_Kris.cpp | 55 +++++++++++++++--------- includes/gamematrix.cpp | 14 ++++++ includes/gamematrix.h | 6 +-- 5 files changed, 51 insertions(+), 24 deletions(-) diff --git a/TestingGround_ChatGPT_Kris.exe b/TestingGround_ChatGPT_Kris.exe index c3fb2f9f9e42128eb5b2281aaa61c479dba5344f..e4f075aaafa145d180d54610c927980dc79e68f5 100644 GIT binary patch delta 12510 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 literal 70709 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 diff --git a/gamematrix.exe b/gamematrix.exe index 7cd93ef90273a0ea24adc33b2437aa2208a77108..a5095e990e4f71ccbf995c736bba796acfc131f6 100644 GIT binary patch delta 13172 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 iBiMs~UB?II{Z@Qu9APQn11R delta 10765 zcmcIp3sh9sxjyH>;4q2|!+;3L9A*YYMKUVlvx*ONe1<$!qCo}`1w6?wtVxKIq{i9=qN%h=TYA&pYSPuxo0v?ZNl4qYG>>|}ea@LVoS3`rUF)uU zmizqw|Ly;^|NS_7a8GmCCtnCHdlNtXiLso^=eU}1j_cvlh5mw&!Pz;En}6_3PS}rs z&mDYkLQHl9fOd`xK#6m4++IrKNANy+fS+o}umLlo+37exVps;aK2I*}vT9Zq*A{c! zu1Its6lXviPM`6KIeP`LE;Qyi8?Dci%W=6`b+YL`rsqaudgEz|FnyquQwu~r+GN@< z4CQCiD|pYMKjQ7Ah_IpjLVs3RG(To&D#zV6yvjo}kOV$ZC32k88`m$7fHZXk)+1)%W!S z>BkGXo%VPa=O~3!E^GD9+MdH1f?)rG9@P^Z?du}r0Is$KEx~?})X7$GN@in}zH;xaA zPeF7x>n_2}Bin6M?DoTs4Nx-00C&qWln=-;0+m4x<_#JvLmF;HV=fTc0jo)KqmM;H zPH!YCzL}+5nO`S*7{)TcHA&V=gLQ+HD&O!^rWqE!|G~R=?>0y&0b_##b{{aL6%iWx zONxWH(SN-$8*lb}+=18iMn_OQ1rcVwF=t#td2XaJLJ* zjjT`3*vC922Qy|$a>l~|VWo4cqBA;?_FTnv4Sc}@Mf!6NimpvXxBTNbmt^k_mtf0#MXbOrNv1VF){oE+8UFVGy#+P z?@n)c7wh}LoA*sqUhi!)oJ^lUS7K7dukPM$aW-6Y6kZL6^Xev*N{2}Fb=}BP`Zi`_ z^mr@)uAx_`je=p_c$#Gz%kQGCrZIT8nSNY$Y%CPQ1r)V8t{J?O@4DNK`V`{qb+Uj9 zAXEp1TnG(8VGM*LK_MN&i$P&9gtvpj00>`Z)30Mk3CU&>%xQ+_q%N#zGmSDA%%oV3 zo72=W?GlbD?lOwZ!D73l(-BB9L-ZE*zKU(g1ArZ*k^ft#`POS6Sv zK`{wQq>mdQamf)0^S!zy42-7*aU#H~xXhR{VYQsSc}E{W#E$3|m`VJa~tKY*@{X(Z9^_!!~M(R3`nfOiG`QS_k5 zkQ6O(gXxh$Nse{Q0qheoBiWLG1E*ORIa*Ha=h!x0-Pc7}w(WeA?k`1jc94xPVmU>7 z@r8)qRnJP~jXEV^`k7uMgl$YnmDJ*CPC}B=&7$1qTN?7d;k`O*5!EIv5Z;NVs|h_q zq{IL6;EBATyN|v|d_~xnMb9Q(PFTj4PITj5c=zfuAW88p%Vgm1-U+i>%&QiK}U6>bU+PU12p{OIiX*iByDB>)Y*{Dw;Sdub6ZwI+{?$3;;Z63!CLYA?6prt`XPD-_vtU00!S2*6^= z0sdL)f6h9eAN)Qpcg}`h{YHZ{&X1461g<9!C6j%%uqK?g*mL=Gx?-P)w?6G5K8+qt z`yt-p>ErO8oL)^O;`V%ea-|6jlyPukNr$Zn%SGy1p$_eQ6GF3rKe{!O&s|%$`5l0;ux?gBxdDiw>!98wlIQE z*LUP@MUEXM>xrP$v1^b&*SU!I%r0Lct}HJVmz37jmWr#cUa1im6xY_2*NM}_jO@DX zVPa`{)kFg~Z5daHf8q~BIga7KH=M39oQ|^%k0GySb?J(#^7Z1%(qM?S8!A(4%iWdb zYl>^jtEeMj!3QQ7z7 zht7`do|ts4sw3IIbL=0(sC~jT%$AGzi3dDi#B62x55Ehjn)mG(T~vXfM+xs zALd^0M$ja*aD22x(5q+zz%$y7mH?j7p~>h6?*P3Yzk@Qt=Yu|i<^=Bo?Ha;)xO@m; zxEDl@dlWpQdr~>B3_PR1LaPPOXaVj?_23!(25ldBE}i2l(2jy<^bp!v@IKJ185kJ& zF3@$uIPMB~Mn@0lxK8k+hkH2gHxPacfze-%K=#Z4bUwaKcfd1x3#}JCqdyvn(c=QZ z=+|gQ@QlvGXD}H&qyIq50MF=%`|u+cJfkPja=|mY%>myY2-qncb_Z7go>A-!&IO)P z><+FBJfqklTrGG;=c8=}pFbMEfYG|#GCc_X26!K6J8R$>{WDr8_#V(N(e~D$a(MjX zoV9%Gl+2ubIOGB7VlcmGtbB|{>ce#U2gAeod<0W;vVqT)bZEtt`}@b}8e_sD`3aoh zrtT?e6gg!OiMdh!2~!{D>DCmZzaw`lj|ErII(-1&LQ&I`OzwkHbm?V3g49|MrVgTK zXS@(uc}VW5rQ(@`VpH)|Nrsq|6*n- zPp(;qu&NgHD_Xknq4Jvbc@M5+iFhQrx^jKqN^WO}FQ@3)pSC(hf3h>clYZ`~{y0Tg z<*{qz1JE`1`LKfyoqyoMuXKX`X)-*V66y1u^R@Xd`8xfh9{xhlze={ksR?U~%d1$R zFCy67i5$BgV|v5rRH2n0NF9Z?h;)2CeOCIUFePE0#P-#!0Mc$Had}F@9*OPSc?w9r zY`)i||9Sog>j5PXmkex|t+A#z*I45;X0@oGl zz>R;I%NEfD@J0yKorBoUwCTg*Vd1!N@?<%cKqFR+FlWMVKPlI&+S0mOa0v!7uCUU+ z6?U`ueVrBP{1Bby@9VsV&fF5aS$|KbXrPo5D;-DYH>iO&W`=?4O045LF{MgJIs2QJ zJ==|?qCs-*sK%?xD@&2^ujw}>mWb;Zqr*ULn-j^nGJeoah}CSQp@niA2uIVFT88W4 z(E))0VO&v>ys$nBX$LC-ce__s^zVimhQo#Nb~a_g+Z?@Hkw}ixO#UVnmfHFL)P~h@ zwzQIepJG-8<$_g}{9ox!Cb#aeL22OX3O<}HZky18V1?@QL8A;)jDeu31336(o!c<_^P!2DRa{C!lu#?B9rVz;fSM{uA^Lta{opft#aG>I`ZPpBJAgn(A0I7h(#E^ zD~euQoJiZ(#d}slWLIW+YQb=BAYDo@wjnugH;@;Ma(Ef>0oj8So)uL_UI6kd4e~mW zg1BJP%+F0ACqUI$AA|!kvNfiQ(_`|$CDHPodI1@_YAUeh->R|k`Sdy7<0*FiZ2lZA zTW?924rQOlQ$7$bp3Qy2DzFu}w#YLctQI;u*H`pE8k*SzX>Hc?^oK{S^jNK(zeuO? zh7b2FGHh_BUxVtuaMfDPm(Uzvd?`|^C#bt>U zzabR73buV~CGViGcUU5#akjNXadV20XrSDk=>nt+ z4OUv{G0=^MDMEpOZ;qAErBNp>g~qGILYP3#_If$fm(N2BZ^_(En=^xOm39ezT-U$BsNt>;<4$O@e zd>MHfZ7glJ-2Y>T9T$Mxjh2Wo9E4&jTg3fE$r(FOGHKn;!L)d{lix}QcG&2{ZFWj* z7(%DF^b_(^TOZG+*Y=p`!96)bfh0}dYoablE=jr!Y2n_WG``71Z$m1R`d)!Fw<$+( zLz+dM;OZp&;^QWo^>~g@FG&usiLOD~D@o5on(hrsnfpxC9+J*OnzAoPXpuBCnoV?N zpWR%ke)5!W^iiq*-_Sp?*>0}Ar{9-KJA4h*yOODVbNeKr{bOF*0Njd^)_`w{Z zJC(W*&Z2W*15!t8tBKNEbA%pAGLnhTw%(^#zUayHgX1>ZN_K&>N~^p6$=THZ&>Y^4 zjwEs)(yJX#EQL>>w1$ms7wEGmt(19~Sz%K7eYEHBY(dX>+I`qW@keq5qm{Z2&!R(M z6QquvM@(dTB1aIJ)cS;pS|DUdUE3iIJengoB%q{oh$$Z#x2$d#mCNP8hU zC28X^6Ga@);kP5%*+RZLg3pi7K~ljHggRRADYEZDsib<(1n32rOfdyx-;)7!9vXxcIq37dHNt|9F7rV}Rz4sxN_ zg(HRSEqQ-2q>egH+G4-w-bMd7ITrVwk*7v^w)U}<@7zxUF=BVBC)zte+{*1u*7*~V z7F;^;MO1F;Ujtze>z8#51907B8HbR;K%5#s=^jAc$e1N9n~eh!ynV_@9uU#m*HJOk zfrT1=8xS9su;-Z|<4=!^ zN3iI!zhoe}p)86@O6$sT>8@7}K3Qi1vqDYSA4X*40U+%EmsO-<8H4b!udS?9&&)KA zypoRC$Ltv(>?Wu>>Hxwn!}uC2e%^_q0-sg*Jc_pZtRC|~bc7NH&kbjYwQsS<0Z9O; z`j`WxUSqW!hy#hL6H?6(jg<$8OJnr}&UMFA=0}fe#&w2y$1v2X^aIJztjO1Zh#FrX z0BJ`&xngUJD=Vu@@M%jW-%}}`Z_#Pg3@S1jE}^a_YyrX^wd5m#^k@dPhUsXK-9Xs? z`m4!4%XBoe+2H|n2~(~H`z?@s%@_kfR%*fva8jTN76pXW6reJjRv_%0SHn*NQmOIt zun~V4(p&pZX$h3_p`=df1|VIUV2wc7{}8H4`xv6pc@apyG<55-RjTQHsy{E1DI>B~^^K}mJ=I&%b3Ez4U#T$-}nU`S|D;73t;RqZOS zUE}%h%n#O@?B}7%(o#2v!ze*BRx`d>XRTFf=wMl>LmmyJMH6!>JIQQ)CwT!7d`kOd zTFi9tsJU+eVh?4(`tV5?pRsyQqJy2VYRH#?Xpez6fwXI;@k1cp8YCS5!P&<54QTXi+p+>jC&ZXOW!$cuP=ZB13lS~nNaSQRoIO;sv^ zI5a8l1LD)v=~ygwOq)jOGL-D_rLN3h0_nj*z(1)<9QP+6=QNJ)06D5b{t3jbS*r<3 znN`mt%=lAsyQXOKpj4n4*&{$4*1q$-9!R|=*mfY7G)OZLwpG*>Z~_QM+Gk)d0x1vy zsi#9bAfv`n7ZB~}yMdh3B>fqXZcT;0HPfyiW_t|yrQM}b%>+`W2`~|edV44;sw*!l z{_X;FGAm70mH@e-@mvBV!y2p;{FD^YxN|Y%>lm(ycmN1H64Z$}2ZS9pY9TJiQT;iq zrxP7@n!xV>>DC0k#Sl$^zX5S;taSM0pQ~97@j&)!tn5Ho0%{UtV*$AVK~HM9RmD^G zvsOv0)VMnaqzs7qExZUML1T3lNGEjE_5U8rE1*%j z9Zvz|B@Du-LL*+0{rXE&?XwK41c0`9NghR2iv3s+NgXDdqN4VswpjHrY#|aNxy?xJ*Zs# z4-@=LFZ?yk-`bYO`%^DI$NQZx%?,4> rot3D(double angle_deg, char axis); @@ -16,11 +19,14 @@ static std::array,4> rot3D(double angle_deg, char axis); static std::array,4> translate(const std::array& pos); -//Mathematische Funkion, Rechnung (Matrix C = A*B) + + +//Matrixmultiplikation-Funktion std::array,4> gameMatrix::matmul( const std::array,4>& A, const std::array,4>& B) -{ + +{ //Matrix-Mathematik (Matrix C = A*B) std::array,4> C{}; for (int i = 0; i < 4; ++i) @@ -28,37 +34,44 @@ std::array,4> gameMatrix::matmul( for (int k = 0; k < 4; ++k) C[i][j] += A[i][k] * B[k][j]; + return C; + } +// -------------------- Translationsmatrix -------------------- +std::array,4> gameMatrix::translate(const std::array& pos) { + std::array,4> T{}; + for (int i = 0; i < 4; ++i) + T[i][i] = 1.0; // Identitätsmatrix + + T[0][3] = pos[0]; // x-Verschiebung + T[1][3] = pos[1]; // y-Verschiebung + T[2][3] = pos[2]; // z-Verschiebung + + return T; +} + + int main() { - std::array,4> A{}; - std::array,4> B{}; - std::cout << "Gib die Werte für Matrix A (4x4) ein:\n"; - for (int i = 0; i < 4; ++i) - for (int j = 0; j < 4; ++j) { - std::cout << "A[" << i << "][" << j << "] = "; - std::cin >> A[i][j]; - } - std::cout << "\nGib die Werte für Matrix B (4x4) ein:\n"; - for (int i = 0; i < 4; ++i) - for (int j = 0; j < 4; ++j) { - std::cout << "B[" << i << "][" << j << "] = "; - std::cin >> B[i][j]; - } - auto C = gameMatrix::matmul(A, B); + // Beispiel: Translation testen + std::array pos; + std::cout << "Gib die Translation (x y z) ein: "; + std::cin >> pos[0] >> pos[1] >> pos[2]; - std::cout << "\nErgebnis der Matrixmultiplikation (C = A * B):\n"; + std::array,4> T = gameMatrix::translate(pos); + + std::cout << "\nTranslationsmatrix T:\n"; for (int i = 0; i < 4; ++i) { for (int j = 0; j < 4; ++j) - std::cout << C[i][j] << "\t"; + std::cout << T[i][j] << "\t"; std::cout << "\n"; } - return 0; -} + +} \ No newline at end of file diff --git a/includes/gamematrix.cpp b/includes/gamematrix.cpp index 7190894..7fef98b 100644 --- a/includes/gamematrix.cpp +++ b/includes/gamematrix.cpp @@ -64,6 +64,20 @@ std::array,4> gameMatrix::rot3D(double angle_deg, char axis return R; } +//Translation +std::array,4> gameMatrix::translate(const std::array& pos) { + std::array,4> T{}; + for (int i = 0; i < 4; ++i) + T[i][i] = 1.0; // Identitätsmatrix + + T[0][3] = pos[0]; // x-Verschiebung + T[1][3] = pos[1]; // y-Verschiebung + T[2][3] = pos[2]; // z-Verschiebung + + return T; +} + + int main() diff --git a/includes/gamematrix.h b/includes/gamematrix.h index 2a486ea..d074dc0 100644 --- a/includes/gamematrix.h +++ b/includes/gamematrix.h @@ -19,9 +19,9 @@ public: char axis ); - // Verschiebung + // Translation static std::array,4> translate( - const std::array& pos); + const std::array& pos + ); };