From ce8563cc9454ca04b2f5c97ef20f426c53dd3045 Mon Sep 17 00:00:00 2001 From: Alexandre Date: Mon, 30 Dec 2024 20:15:13 +0100 Subject: [PATCH] fixed cube rendering to render rotated cubes properly --- bin/back | Bin 93984 -> 107552 bytes obj/base.o | Bin 64528 -> 64744 bytes obj/display.o | Bin 27224 -> 35072 bytes obj/generation.o | Bin 2808 -> 33616 bytes obj/main.o | Bin 12488 -> 13008 bytes src/base.c | 10 +++--- src/base.h | 4 +-- src/display.c | 83 ++++++++++++++++++++++++++++++++++++++++------- src/display.h | 7 ++++ src/generation.c | 3 +- src/main.c | 4 ++- 11 files changed, 90 insertions(+), 21 deletions(-) diff --git a/bin/back b/bin/back index b31b6488854cf80560c4f921197a385c69085b27..030047c5df562375aa749be7b366d6d0c24a939c 100755 GIT binary patch literal 107552 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 diff --git a/obj/base.o b/obj/base.o index 133f544f7f503ddc42c5c2d45350eab042cdd7c8..cfa7f2a9c9b0266ffc2d3f754d85d7fa6cbdc332 100644 GIT binary patch delta 12541 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 delta 12517 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 ex|efR}P{)mTew!w~bE&mUrh2ix8 diff --git a/obj/display.o b/obj/display.o index 8160256f3d84563c21133ffb4f33ef255e687874..aabae8e765edbd2312a2313a4412c5b533613811 100644 GIT binary patch literal 35072 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 L_o!3&X!iea{SvtK delta 8940 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 diff --git a/obj/generation.o b/obj/generation.o index 26ccd15b350523e83089b95bd77229571f0a7ac9..2c334d6aa7c4c64b1d946a743bc9822b8e29c166 100644 GIT binary patch literal 33616 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 SMtXk6X*T_h_L7qL{Qm$+;G0JP literal 2808 zcmbtWO^*{t5Uuv?!h*wofPjciv;$gTk>WAtV~HZ|%F1q71SCR895^7SJ?^y)cF$^N z42y_Fq+C#P2nR0Qk&;8M+;YkvNG?bm;RkStqMT5aRP|Kb<7OfuXvtmmUe&9vnVz2U z{Vy(`F9`v52v~&?vMj*%j*(wCZXNc*9Q=U(B#0@ZN;G{;lO1AeC%IxGGg+D_F)}4Z zX_8XBiOH@`v5-MRWHCmz%7iI4l^J1{6SEmA83SSw%H`FvH;vuQiKEl|%HG2K!t6m@ zfFsoDNBA>pFnv?iu~9=biLn!Cg%Gc&_mH96fYBe+JLlI<1*d|Oex;udv|4E^t>SKoP{v_rW&6|R z%JLb%()KHxGP$e6P8{iIkW>cxPFJ@osciOCGHNC4$QaBtY_k;&Fb5i+M^O)wP86s9 zSRZ^5BM}QW>4I25SD3_M)pRG*Zlr?{s-38>s^F6B6&YWNu_vL>F?bQVQ`EOBzhmoS;LGIztC3vta zheoakcO#_JCM7vrlA{|n>m4*wJ5uN|Htv>o2|ryc$kurARJ zgTtubSNL)Wbd;(9Uul&jmEkSh>3dnapLCY({j|mE)^RN5=Eq?K#O2Qz#p^T`3|D^~ zbLivou6p{!xHW0nI!!o!%*=3hb3efdo!|N}BXb^dLoZk`gEZyY58a2HPv_CCNul34 zZl61bZ{%LVK#~4$7Wh`k*3G?yd{O^f=KBv|`=tKq?}FQZ3puwYQm~)NvjlR(&23<; zX#EGg{sq?3`t+7}*WW^pYT9#%t{E43p?@sF)~;{uJ>-k@8>LKO-%qxT)mcmbyNdKr zS?^mRTdTA75$l~ac*c5{w>rxcE=qmQeX(QwzN?^%)l N58l5gMm3sT{eS0l^>Y9K diff --git a/obj/main.o b/obj/main.o index e18d15dda690fa1c2ed0d518b78cb0293283dcac..c3ef0a92afd049161c6ec120507eb0b6743538c9 100644 GIT binary patch delta 1667 zcmZ{je`s4(6vywqFKOP(@8l(>Y5F5CroU{`gig1%3u#MHQkc?$lY&1sE7tv$O$FH> zTU}`#)>&yhsDEsuqk`K+m?doc!>w%i$13P>`>P0(TJVp_z)WGNtc&No_cB5t2j02& ze7@(Nd)~{*`s+Wxxzr`blZB^R-5ZRtg{z5jxtv?L7+rnI&aFvA3|{3U*6nG}pAX<9 zk2NfQkj4~*&-h4PE2BfPY$p7e-@B2UyEmR&*vy?+q}1Gr)BSo;Ikzw=BOEqhPKP-! z(nh4?2Awo$6loXI{RTZ?&@|G1q=yW87#Elj3Crb2xS12rHsy~;O8;tihp02OVcoOR zkZglrL{yAQ@KBuRp5j;1Id1n}NBOv5%m@oW zOs0}9?Pi5CKb*BaFZ*RuU$X+2o53x|_r(rc&2z>Pk9O=a@KX)T#~8bqgZ92VE$`s6 zLK$fZcg;loM}_MmA<~$goa2B+&%6Z%xryJ0Z{#S~;3ql72Vh%{rCx5p^c+=arF8!~ zcjXCJ9%9$rvdI!7rTjh|9!ano&5;na*CMQo@_g{2uce5!OeyWf~% zeNK8+sZg51sE_S1!!xk1e82Z;Cdq>u-|ZN1jH#lLF^|e6x5F{$K%~hWi+VX9Q)%PV z*qEBauKc}xC@i@LH7_MKWWuDXRz`^L)`GBU|DAq2?tFr0;8(|X#xLGgtqKzsF7g3d zu8@=eCcjMXJ91)L)t7l5e9WZxigwqu4f25wD*1WfKc(^kT(BAp6~7G*TOk^e;h!e2 zzIr2F6MN{(pp9{3#V^R{vsL(b9sZ%oX>!8&Jj975`vQEC5MS2)S@Q2+s8iu`9llnF zKd5t~pqA07lO}vBojhsq23?52ok*yihOZ(IR2^%n;wRx&B-Gbtjt&*2fvcQKRq?he zJ|GoE^Ct@52Zi=f_z=!E8BMkgAGg{1EL=x*u|^%GOVGZA`>0;3QNg_NHfSB8@Lx6R z4l|Cy1ge8L`(%}SkD2fI9L%EnN{!lKo;?VwsD4zVE*quTXYd=U=W5g!&B~X+*BJ`m zu2Fw5)y?8a=UWz<#;<#JDrx$4&`NN(XP21Mryi~aERadWtHUFScG-OCNq9S`!j(ka zzG)Jt4gN^%6wy|QC9~q59j205<)+i9oQBl^rYGZKe>ZHQ@W>Q~p}TjNSn7tU-mJ*F zVFj1-Ds1&;m7_u9Y*as+NyWwKApIZp&W@zw${91E-{=Js4kutMl@%L7h^4cl)Cg1Q Ptg@6a>RdB==yCoJfSYY~ delta 1281 zcmZ8gT}TvB6u$S){>x@UJ^ zNr=w+e5yttVvG$xJhiZ}&^i2|cWQ@+!$F>d30@1WVhj#RAy+GsjKO(n{VEibwOgKj zU-!+$n3Hjt@*uewxl-#8;BegKdSSvb%01r4$XyhS`Cyl;b}^l#v@q;y<6MWQ?wO_G zhYrU0Epms^F{`>(^}L8OKTOIS<&aG5HYe!H>N6|4o%TD6a_{ov{{TPr<2Z-8##CDS z-^Pw%xJrsf30F}<1E+;HP7ra-Lry*Du#_{!TKqD}ts?4&1hx2ysBw6rRC5#FDH)yt zuV-my3w{{hN#YtR6qx1OK7u+Zv)&JG@Xp}L`w8ubU7lE72c~5FdVqpXeMtGQ16Ee; z#$r-_Zoq)so}^~%-NTwH=mSXk@9@R*WV^v7T~*hrt!hhL<_2S4&btg+_~NX~$l#{_ zG+!5y^tEvxiCk?FVgpV_5O0kKThuN?gc&ndF-ay!1zzz{;0WVd2oJVU@yD$&;oxE~ z$a=IQNb6~GQeR<>zTXWugUd+%H26y?o<@WBA+sO+NHLHZ59Pj z&1EIB9j8e~(|1#}^ZhVYXGZ$U*m}F#d3cZPwK8^v&E5ll!i>z8u_Jb$pP>WUFx~>P z;=ZqJwh@jZ+g8Tr7R78Uj3C=x#?H~<&<5dU!gO9D7V>F>-vFL8BlpVGal6Y|$R7;B|+YD3b=HMGU`)Tj_ zznm`<7U3wQGCA=~fgTL^RT#stvkvAnIpwYOi!inlvW?ARs1AA>bHb;=7>1Jpn8&cG u5>nZmI8sTM69%&h(OU^)i1eml9>XZ|O*!$%gr26HGL%~E{Sjo-wSNJdqVCoJ diff --git a/src/base.c b/src/base.c index a040a1f..129e39b 100644 --- a/src/base.c +++ b/src/base.c @@ -118,7 +118,7 @@ bool str_equal(char* s1, char* s2) { // ------------------------------------------------------------------------------------------------ // -cube_0 create_cube_0(double x, double y, double z, double w, double h, double d, int r, int g, int b) { +cube_0 create_cube_0(double x, double y, double z, double w, double h, double d, double hz_a, double vt_a, int r, int g, int b) { cube_0 cb ; cb.red = r ; cb.green = g ; @@ -129,14 +129,14 @@ cube_0 create_cube_0(double x, double y, double z, double w, double h, double d, cb.w = w ; cb.h = h ; cb.d = d ; - cb.hz_angle = 0.0 ; - cb.vt_angle = 0.0 ; + cb.hz_angle = hz_a ; + cb.vt_angle = vt_a ; return cb ; } -cube create_cube(double x, double y, double z, double w, double h, double d, int r, int g, int b) { +cube create_cube(double x, double y, double z, double w, double h, double d, double hz_a, double vt_a, int r, int g, int b) { cube cb = malloc(sizeof(cube_0)); - *cb = create_cube_0(x, y, z, w, d, h, r, g, b) ; + *cb = create_cube_0(x, y, z, w, h, d, hz_a, vt_a, r, g, b) ; return cb; } diff --git a/src/base.h b/src/base.h index 3adcaed..7dd5b91 100644 --- a/src/base.h +++ b/src/base.h @@ -15,8 +15,8 @@ int line_count(char* filename); int str_to_int(char* s); bool str_equal(char* s1, char* s2); -cube_0 create_cube_0(double x, double y, double z, double w, double h, double d, int r, int g, int b); -cube create_cube(double x, double y, double z, double w, double h, double d, int r, int g, int b); +cube_0 create_cube_0(double x, double y, double z, double w, double h, double d, double hz_a, double vt_a, int r, int g, int b); +cube create_cube(double x, double y, double z, double w, double h, double d, double hz_a, double vt_a, int r, int g, int b); void free_cube(cube c); double convex_pt(double a, double b, double theta); double distance_pt_pt_3d(double x0, double y0, double z0, double x1, double y1, double z1); diff --git a/src/display.c b/src/display.c index 57f1165..4e93ac9 100644 --- a/src/display.c +++ b/src/display.c @@ -214,25 +214,84 @@ void draw_segment(SDL_Renderer* renderer, double sx, double sy, double sz, doubl } // else : not visible (behind camera) } +void axialRotation_X0(double* y, double* z, double theta) { + double y0 = *y ; + *y = (*y)*cos(theta) - (*z)*sin(theta) ; + *z = (*z)*cos(theta) + y0*sin(theta) ; +} + +void axialRotation_X(double* y, double* z, double theta, double cst_y, double cst_z) { + // project the space onto the (y, z) plane to get cst_y and cst_z + double y1 = *y - cst_y; + double z1 = *z - cst_z; + axialRotation_X0(&y1, &z1, theta); + *y = y1 + cst_y ; + *z = z1 + cst_z ; +} + +void axialRotation_Y0(double* x, double* z, double theta) { + double x0 = *x ; + *x = (*x)*cos(theta) + (*z)*sin(theta) ; + *z = (*z)*cos(theta) - x0*sin(theta) ; +} + +void axialRotation_Y(double* x, double* z, double theta, double cst_x, double cst_z) { + // project the space onto the (y, z) plane to get cst_y and cst_z + double x1 = *x - cst_x; + double z1 = *z - cst_z; + axialRotation_Y0(&x1, &z1, theta); + *x = x1 + cst_x ; + *z = z1 + cst_z ; +} + +void axialRotation_Z0(double* x, double* y, double theta) { + double x0 = *x ; + *x = (*x)*cos(theta) - (*y)*sin(theta) ; + *y = (*y)*cos(theta) + x0*sin(theta) ; +} + +void axialRotation_Z(double* x, double* y, double theta, double cst_x, double cst_y) { + // project the space onto the (y, z) plane to get cst_y and cst_z + double x1 = *x - cst_x; + double y1 = *y - cst_y; + axialRotation_Z0(&x1, &y1, theta); + *x = x1 + cst_x ; + *y = y1 + cst_y ; +} + +void drawSegmentRotated(SDL_Renderer* renderer, double sx, double sy, double sz, double ex, double ey, double ez, double hz_angle, double vt_angle, double center_x, double center_y, double center_z) { + double psx = sx; + double psy = sy; + double psz = sz; + double pex = ex; + double pey = ey; + double pez = ez; + axialRotation_Y(&psx, &psz, hz_angle, center_x, center_z); + axialRotation_Y(&pex, &pez, hz_angle, center_x, center_z); + axialRotation_X(&psy, &psz, vt_angle, center_y, center_z); + axialRotation_X(&pey, &pez, vt_angle, center_y, center_z); + draw_segment(renderer, psx, psy, psz, pex, pey, pez); +} + void drawOutlineOfCube_0(SDL_Renderer* renderer, cube_0 c) { SDL_SetRenderDrawColor(renderer, c.red, c.green, c.blue, 255) ; // x = constant - draw_segment(renderer, c.x, c.y, c.z, c.x + c.w, c.y, c.z) ; - draw_segment(renderer, c.x, c.y + c.h, c.z, c.x + c.w, c.y + c.h, c.z) ; - draw_segment(renderer, c.x, c.y, c.z + c.d, c.x + c.w, c.y, c.z + c.d) ; - draw_segment(renderer, c.x, c.y + c.h, c.z + c.d, c.x + c.w, c.y + c.h, c.z + c.d) ; + drawSegmentRotated(renderer, c.x, c.y, c.z, c.x + c.w, c.y, c.z, c.hz_angle, c.vt_angle, c.x + c.w/2.0, c.y + c.h/2.0, c.z + c.d/2.0) ; + drawSegmentRotated(renderer, c.x, c.y + c.h, c.z, c.x + c.w, c.y + c.h, c.z, c.hz_angle, c.vt_angle, c.x + c.w/2.0, c.y + c.h/2.0, c.z + c.d/2.0) ; + drawSegmentRotated(renderer, c.x, c.y, c.z + c.d, c.x + c.w, c.y, c.z + c.d, c.hz_angle, c.vt_angle, c.x + c.w/2.0, c.y + c.h/2.0, c.z + c.d/2.0) ; + drawSegmentRotated(renderer, c.x, c.y + c.h, c.z + c.d, c.x + c.w, c.y + c.h, c.z + c.d, c.hz_angle, c.vt_angle, c.x + c.w/2.0, c.y + c.h/2.0, c.z + c.d/2.0) ; // y = constant - draw_segment(renderer, c.x, c.y, c.z, c.x, c.y + c.h, c.z) ; - draw_segment(renderer, c.x + c.w, c.y, c.z, c.x + c.w, c.y + c.h, c.z) ; - draw_segment(renderer, c.x, c.y, c.z + c.d, c.x, c.y + c.h, c.z + c.d) ; - draw_segment(renderer, c.x + c.w, c.y, c.z + c.d, c.x + c.w, c.y + c.h, c.z + c.d) ; + drawSegmentRotated(renderer, c.x, c.y, c.z, c.x, c.y + c.h, c.z, c.hz_angle, c.vt_angle, c.x + c.w/2.0, c.y + c.h/2.0, c.z + c.d/2.0) ; + drawSegmentRotated(renderer, c.x + c.w, c.y, c.z, c.x + c.w, c.y + c.h, c.z, c.hz_angle, c.vt_angle, c.x + c.w/2.0, c.y + c.h/2.0, c.z + c.d/2.0) ; + drawSegmentRotated(renderer, c.x, c.y, c.z + c.d, c.x, c.y + c.h, c.z + c.d, c.hz_angle, c.vt_angle, c.x + c.w/2.0, c.y + c.h/2.0, c.z + c.d/2.0) ; + drawSegmentRotated(renderer, c.x + c.w, c.y, c.z + c.d, c.x + c.w, c.y + c.h, c.z + c.d, c.hz_angle, c.vt_angle, c.x + c.w/2.0, c.y + c.h/2.0, c.z + c.d/2.0) ; // z = constant - draw_segment(renderer, c.x, c.y, c.z, c.x, c.y, c.z + c.d) ; - draw_segment(renderer, c.x + c.w, c.y, c.z, c.x + c.w, c.y, c.z + c.d) ; - draw_segment(renderer, c.x, c.y + c.h, c.z, c.x, c.y + c.h, c.z + c.d) ; - draw_segment(renderer, c.x + c.w, c.y + c.h, c.z, c.x + c.w, c.y + c.h, c.z + c.d) ; + drawSegmentRotated(renderer, c.x, c.y, c.z, c.x, c.y, c.z + c.d, c.hz_angle, c.vt_angle, c.x + c.w/2.0, c.y + c.h/2.0, c.z + c.d/2.0) ; + drawSegmentRotated(renderer, c.x + c.w, c.y, c.z, c.x + c.w, c.y, c.z + c.d, c.hz_angle, c.vt_angle, c.x + c.w/2.0, c.y + c.h/2.0, c.z + c.d/2.0) ; + drawSegmentRotated(renderer, c.x, c.y + c.h, c.z, c.x, c.y + c.h, c.z + c.d, c.hz_angle, c.vt_angle, c.x + c.w/2.0, c.y + c.h/2.0, c.z + c.d/2.0) ; + drawSegmentRotated(renderer, c.x + c.w, c.y + c.h, c.z, c.x + c.w, c.y + c.h, c.z + c.d, c.hz_angle, c.vt_angle, c.x + c.w/2.0, c.y + c.h/2.0, c.z + c.d/2.0) ; } // -------------------------------------------------------------------------------------------------------------------------------- // diff --git a/src/display.h b/src/display.h index ecc810d..93fc30e 100644 --- a/src/display.h +++ b/src/display.h @@ -19,6 +19,13 @@ void drawCharToRenderer(SDL_Renderer* renderer, imgs data, char c, int X, int Y, void drawNumberToRenderer(SDL_Renderer* renderer, imgs data, int n, int X, int Y, int W, int H, int Woffset); void drawStringToRenderer(SDL_Renderer* renderer, imgs data, char* s, int X, int Y, int W, int H); +void axialRotation_X0(double* y, double* z, double theta); +void axialRotation_X(double* y, double* z, double theta, double cst_y, double cst_z); +void axialRotation_Y0(double* x, double* z, double theta); +void axialRotation_Y(double* x, double* z, double theta, double cst_x, double cst_z); +void axialRotation_Z0(double* x, double* y, double theta); +void axialRotation_Z(double* x, double* z, double theta, double cst_x, double cst_z); + void project_to_camera(double x0, double y0, double z0, double* rx, double* ry, double* rz); void draw_segment(SDL_Renderer* renderer, double sx, double sy, double sz, double ex, double ey, double ez); void drawOutlineOfCube_0(SDL_Renderer* renderer, cube_0 c); diff --git a/src/generation.c b/src/generation.c index 0885334..c74f79f 100644 --- a/src/generation.c +++ b/src/generation.c @@ -16,4 +16,5 @@ #include "base.h" #include "generation.h" -// ------------------------------------------------------------------------ // \ No newline at end of file +hashtbl visited ; + diff --git a/src/main.c b/src/main.c index 5b79a52..0efee75 100644 --- a/src/main.c +++ b/src/main.c @@ -47,7 +47,8 @@ int main(int argc, char** argv) { init_csts() ; import_digits(rend) ; import_letters(rend) ; - cube_0 cb = create_cube_0(1.0, 1.0, 1.0, 2.0, 2.0, 2.0, 255, 255, 255) ; + cube_0 cb = create_cube_0(1.0, 1.0, 1.0, 2.0, 2.0, 2.0, 0.0, 3.14159/4.0, 255, 255, 255) ; + cube_0 cb2 = create_cube_0(1.0, 1.0, 1.0, 2.0, 2.0, 2.0, 0.0, 0.0, 255, 0, 255) ; while(true) { resetRenderer(rend) ; @@ -55,6 +56,7 @@ int main(int argc, char** argv) { playerActions() ; drawData(rend) ; drawOutlineOfCube_0(rend, cb) ; + drawOutlineOfCube_0(rend, cb2) ; //draw_segment(rend, 1.0, 1.0, 1.0, 10.0, 2.0, -1.0) ; updateRenderer(rend) ;