From e4c8917154f7eb8c26ef6fe2438379a34b646768 Mon Sep 17 00:00:00 2001 From: lipe89 Date: Thu, 12 Mar 2026 09:39:09 +0000 Subject: [PATCH] ini --- .vscode/glut_template.code-snippets | 38 +++++++++++++++++++++ .vscode/launch.json | 15 ++++++++ .vscode/tasks.json | 31 +++++++++++++++++ AULA1/main | Bin 0 -> 20888 bytes AULA1/main.cpp | 15 ++++++++ AULA2/main | Bin 0 -> 21432 bytes AULA2/main.cpp | 35 +++++++++++++++++++ AULA2/main2.cpp | 28 +++++++++++++++ AULA2/main3 | Bin 0 -> 22024 bytes AULA2/main3.cpp | 51 ++++++++++++++++++++++++++++ AULA3/main | Bin 0 -> 21080 bytes AULA3/main.cpp | 38 +++++++++++++++++++++ AULA3/main2 | Bin 0 -> 21216 bytes AULA3/main2.cpp | 38 +++++++++++++++++++++ AULA3/main3.cpp | 30 ++++++++++++++++ CG.zip | Bin 0 -> 13395 bytes 16 files changed, 319 insertions(+) create mode 100644 .vscode/glut_template.code-snippets create mode 100644 .vscode/launch.json create mode 100644 .vscode/tasks.json create mode 100755 AULA1/main create mode 100644 AULA1/main.cpp create mode 100755 AULA2/main create mode 100644 AULA2/main.cpp create mode 100644 AULA2/main2.cpp create mode 100755 AULA2/main3 create mode 100644 AULA2/main3.cpp create mode 100755 AULA3/main create mode 100644 AULA3/main.cpp create mode 100755 AULA3/main2 create mode 100644 AULA3/main2.cpp create mode 100644 AULA3/main3.cpp create mode 100644 CG.zip diff --git a/.vscode/glut_template.code-snippets b/.vscode/glut_template.code-snippets new file mode 100644 index 0000000..fd9811e --- /dev/null +++ b/.vscode/glut_template.code-snippets @@ -0,0 +1,38 @@ +{ + "Template Base GLUT": { + "prefix": "glut-base", + "body": [ + "#include ", + "", + "void display() {", + "\tglClear(GL_COLOR_BUFFER_BIT);", + "\t$4 // O teu desenho fica aqui", + "\tglFlush();", + "}", + "", + "void init() {", + "\t// Define a cor de fundo (R, G, B, Alpha) - Preto por omissao", + "\tglClearColor(0.0f, 0.0f, 0.0f, 1.0f);", + "}", + "", + "int main(int argc, char** argv) {", + "\tglutInit(&argc, argv);", + "\t", + "\t// Configuracoes basicas da janela", + "\tglutInitDisplayMode(GLUT_SINGLE | GLUT_RGB);", + "\tglutInitWindowSize(${1:800}, ${2:600});", + "\tglutInitWindowPosition(100, 100);", + "\t", + "\t// Cria a janela com o prefixo obrigatorio", + "\tglutCreateWindow(\"GLUT: ${3:Titulo da Janela}\");", + "\t", + "\tinit();", + "\tglutDisplayFunc(display);", + "\tglutMainLoop();", + "\t", + "\treturn 0;", + "}" + ], + "description": "Template GLUT com configuracoes basicas (tamanho, cor) e prefixo obrigatorio" + } +} \ No newline at end of file diff --git a/.vscode/launch.json b/.vscode/launch.json new file mode 100644 index 0000000..b7406b0 --- /dev/null +++ b/.vscode/launch.json @@ -0,0 +1,15 @@ +{ + "version": "0.2.0", + "configurations": [ + { + "name": "Debug C++ (CodeLLDB)", + "type": "lldb", + "request": "launch", + "program": "${fileDirname}/${fileBasenameNoExtension}", + "args": [], + "cwd": "${workspaceFolder}", + "preLaunchTask": "Build C++ (g++)", + "terminal": "integrated" + } + ] +} \ No newline at end of file diff --git a/.vscode/tasks.json b/.vscode/tasks.json new file mode 100644 index 0000000..5e2c505 --- /dev/null +++ b/.vscode/tasks.json @@ -0,0 +1,31 @@ +{ + "version": "2.0.0", + "tasks": [ + { + "label": "Build C++ (g++)", + "type": "shell", + "command": "/usr/bin/g++", + "args": [ + "-g", + "${file}", + "-o", + "${fileDirname}/${fileBasenameNoExtension}", + "-Wall", + "-Wextra", + "-lGL", + "-lGLU", + "-lglut" + ], + "group": { + "kind": "build", + "isDefault": true + }, + "presentation": { + "reveal": "silent" + }, + "problemMatcher": [ + "$gcc" + ] + } + ] +} \ No newline at end of file diff --git a/AULA1/main b/AULA1/main new file mode 100755 index 0000000000000000000000000000000000000000..526852192ada763465eb2ce9fe95876f2483a08a GIT binary patch literal 20888 zcmeHPdvsjId7pcCuXd%o*28Wbm_1;@e~0SJkeq8|AI zajvKV?UpgP1fYxWo_3b{DkN+<9^=i9-F3<@- zt?OgR^<4xzisvUyJUlMe^;PP>Bf1|L>R}*bIRlkZH*DG2C*JSre0<@K?n6I(vFGQb z^XnhB&u-b)o=WyFU)r9Ex22Nl!f4y*%H?g#mj-j0V5hwHs4On;lluKxC^k-^{1fob znS%dk74)B~!2fy${v#Fmn=9~lR^T72z>ihnQ+xvWIa3~tsp4=p_yMOfXc{k5@kM0o zo*j{RBAXaY=JJW`o*mt(OggbA+Mh~@NMvw0laA!_(QG~vQL0la4yHDz3b`RMnCea? zqS@|DDwAabu#oT0CZhSoXOii7X1`=?O6EpV(F26oOqrjvQi+mVSUiaceqJ9%}9 zC1pFJ$@KP2W&}QBl*P1t1IYz`166Esn*rG*5 zE+=xhhz-V2deJ7P_*=Gb-Pj%J3@%wJ80`!$lX0gDMo&(Xo}3xN6m95KzWyFLdK)fV zmsp{Bh2~_ffX+tHlz2Yn`RK%S#UIu4CG+=ces4(0na}jt2F0g2LSNF7@q;ox&m|;y zu8eO>O_jY=#-CQkf4PibU&a?9MR)*olO)4i#xIXnLm6NGk4bGI=9KZv=ea-`pX%Ur zen?@&<5&=9afosuh>t)Q)5?%SiC8i8sAsuB48kHEYB z`M(Yy`nflJqxDR?5aBP5<;{ub!iT=+Jt>`^SoSQ~6AOQc+}{!cM)VNLPQN^XwD7w` z(-P+NbCQ0XXj)309+UJ#MAK5{^a)8nKr}6>P9K-_Jw(%z=JXLs-$67jWlkTI^esfw z^5gV~q;DXamM*9Ff+qhv-rRcl`76VRUkM+2^-S-co{q7OXTmqF^TVl$ng10O;=O^O zzlH92(7>D4MNvTbChKwntA3TAiKagdC2D%@#LNDcgQRy-L+E!%{bipbaKT66!)L-z zy|p3y)URA&nz}0@VmqBT$V%H3HQLR3lK0!2f3iXy0Ya_P#x<13jaOY%Cc|W&(?g4jtTJ z%yX@wJuBPfEts7Yk#w!IIEI0Qm1>zx5JE(p1z=8H>&4Xf$cyLiBLl~0gJrGmV zEGJ!ZoM^JAL_GRcQ#AtB2vj3bjX*U5)d*B0P>nz}0@VmqBTyazeou|xOXK^BSF{q- zZ#w7?9CVFVWc`^Ay2U}$yLFU`?`p}rFCq9{wLOhWK39R_`*rg)P4`%oniUZIo*mtn zQDXV~A5CP4KB8Y<<9F5OXoTNUJE7(LPT5ZFAHP#KhYCTOsX#H;W@22wS4SJolwMMx zc>hTo#*}6&AVxKV`HyKw*zYl|$M=0)|A!N*JrGM(Y;(%?U9au22P$dpzQFCRqzAP8 z15LBvx|;uU!0(ScD_*Y0!DbCF(QrV+eHvb;;cXh;r{SX-a=H9o<(BU5)q(SIhkQYx zV_C2>*b(Sl+_`*l=i*iJm0Q(qD)`^luV~)EWjNs5P_u*~m7Cs!u+{x~lZxlLpr$f+ zxjnB#D!{eWCS+RKIu`sCBHq zyNOU)`W}gT;kors(5zcdR()18fOR(*Xwkm|%vng4KkM=*NsvZ1mmK_4AjZ8wWG0&N z60oT4HSBE&yJ;P^sXeB3gH4W_))CFW)s9N}ZT2-1e%U@M;W7I@32(Qbknm3XH3`3B zn|N$uTF33V5`NWQCgHvIMH2p%eMrKu+4oBLfc>=Y@ z*8sfH{+zh^1qAF2sN;YJA&UQ56eT7=K1O^(6u)l_^iv?8BR(ODf6=p`X@t>15Q7lK z-|;ADdXPo$N*fZ9^>!};i+Xns@d;7->+gd;4U)ygCqy*Fll#OI31HMclBWd1eI=Og z_e>x4G4+-401z?nY+`?4HWDNeb)OQ|?nV)x_mdygmxes%QhOw2+e+17Rc1tg5I7t&(pKw1rtS?9Zqe-9~Jx(vTR1O;}%mpYGRDvU`_`%eRVJ6f)6r4`j6k z!=}s2w0>;UMQ2*CYWj>#*PCg*W7CypTEDRAQZudhY`OqV>wTN9IXRa9b3H7{T8?`) z_=P(|4tm}5NkB!F32VO(USR=UB~-X-k$nJ8{bJS#auQH&&REz3DD#&sS0L|$3OV9b zsa*o$!Fsx2$-k0V)Y4Mr&x(+21NplWCnqvskoI;T15P~#k5TrT6^sM&DY1p&IC#PZ0 zTA!STJ?ngO8uo1P(fnru(%eB%PRpJypPZIG-9Eb1OwVSYoR&RXd~#a$gne>a_H6UX zY1wn3kA}4A+2NDZv1g}`hOp_`<&)E~r`IQ^W6woCIURd;`{Z=&+2f<>c>3*d-urE% zxn>Y;_nKz&udzl`vyb~NVm)az(^N1W3ji5ZQFAj$??XoO1;i>%6E$5_)Wb&eTH?z~ zsOBD0Jz+HOA(qV41td#+h~m25HM{0b~# zJr<5z`*3A;KHp#-oGfAmr>}xV?d$lyB zGRdiF)5wxbTiJ@{)q{nabp`G|#!SQqmCZU2KFp?Tb&hV8j3NG4W*S?Y z$mix&1{{>JC32o_tz?uMdzSWgQXiaMuKOipt_uGA@)l4`F*%|R-G5X^plByUOx}m) zTqC=+wP*}cx}HVwpQd38cO_{+!!SNXU;!|oXmbiki}zgMEAYDrzbJn6zw{OS9>wn` z_?bqF>93<(Izwh|7@D=nT#d-w^N?BRBC8?NqFYFFEi#WaL)4l)Y@00qg;t&SpYOJe z%dFOQmVL^a=nWssTJN;9r1Wbz_%`R@D@ET+=ps$3?U7rA^k zpGn0m}8 zOAe+Jap@#(f&$%(7Imy}-U$WThVzAVV%=aOoyaC*AgLAW)N#;2+n@?eT&zf?&>FNe za{10xID42b;3VJZ67YIPN73la0A)!L%?|D(EG64jev&Y9`HHwYSh!Dl8P62xAY;+b z*ibY}_Ax|EmoJuct&_rENXaS?NfeMqo})$NjNbYXA6tw+R zHMK1wBTK!4gNm8q5pW065Xep+5V-?5hB+*Ybe@USO>=a10o^YHhyCqXDmpwe0Hi;e zA4n!J*5ER^m=nuXXz9#j>FlH)pcrb|XgXdTuq6y`q$KlI%jFZUn zrEMcIeT*3W)~@cg*<_OaB%&Q>I<;~oemi27t0NqJZS`^Eq2aV^-NhY#u@uPD1 zIUw^712IHX@wprG?*}qfdmpU8e?peiAjShg9BHa@o{>6!5eQ6H{x^^Yp1wJs8=aE; z*~RB?Z1o|K1~I1?2j-gyh<>!lED0Y5KLGu3XcAl0fj=Ezmw-?vx|5(Z7yNS+Iw@ZY zek0=PT!F2ka2XD?4N8Y) z`E}~$5yg@@J)a^!dHk^GPFW69C3tTI{)6CC{GIW9Qu61Dy`fSWgq^HV4&63S)n6~^ za-4p?T0#Gp75HAPdjpeQk<b{p1^w;{e6c&0&36Pd_%n$1CnNdjpa7#Er})#m z!7Ux=kK~6VF*?$pgK9hz8BAsRqp3(dpULJT(ZZ;p|DY7s0P*1BsWs>*eKHcwW}^op ziF7`D08?6YI1z~#hKCQpq>PF{Ge1eS_=f=R66rYk7Kv=WxNApGq-WxM{A zSTn<$E*6nZm+kD@v9()7wrt3bZy+;1B*mFnve1yF}_N$i>B6O zI#S3b@Xs~r^na-QbiQ5_#dDd+5dQA4E}(hY`7bM*i()W~mw#5ESQ3u>moGD9lcA0e zC+HS&p|bSSe{F=kR^KT=6Yy{ASaGS3CPX6rxt!MGf*jvKn6%RPxX(9`{iM~=C;gm* z2<8q9=cE0AScytF#8^6$PXzH79PBS7@nw%>Tm-SaNn}Tac%%mp~5y-NMRFn)fHj>IyiC7p1vC2hGqYtu-?DSw_NRPLnIBb~`!J=Cu*~~~H zn?ImgT^qNy(ZwN)R3lRr$vA3`4ku%93oCZYg3<$38~Q>7ae)kD+@m##{=y*aqUk|g zO`1%m2QrLD`}?zreN5q_Cke(8Jw}O*4$e+7Is6W+d9b0q9!wK5_2Ll+C58(WSv&-+;n=R;13{bxOfS3pL4WlZya8N&+8h7yzk5UPXBMw_8fl^ z(3%=Dsky~*!1NtJ$VIjf1eAo~rxjVuo%P=jNx6M*K&djkt7xeZ?muQf1f=}>KNCv;aISV(sa%^#H5j>i%0vr_!op1+eb)=t_&oUcGJXM2Vp zKvHhc`}O16es9rIA#BHx?inPI{`0!^Qf=?lr@G41G+n<| zFN)aSdHu6J!&%zCXsD5#F3?#n+p+$_3ie;shVMEW;I!|kV1L^xRRit&mM5qEh6?si ztWj2vlp6zg+Fz*co$bu5Rfhjjp?)ssk_z@aHYocrD{4QOEQgLNq~@`ZGFYiE*mFSA reFuk=|3B$@0*@VKq4MW8DM))n<%#QM-gF>S*|%*`8Uqdk2Pys+XiBbs literal 0 HcmV?d00001 diff --git a/AULA1/main.cpp b/AULA1/main.cpp new file mode 100644 index 0000000..764de5b --- /dev/null +++ b/AULA1/main.cpp @@ -0,0 +1,15 @@ +#include +void display(void) { + glClearColor(0, 1, 0, 0); + glClear(GL_COLOR_BUFFER_BIT); + glFlush(); +} +int main(int argc, char **argv) { + glutInit(&argc, argv); + glutInitDisplayMode(GLUT_SINGLE | GLUT_RGB); + glutInitWindowSize(500, 500); + glutCreateWindow("GLUT: Exercicio 0"); + glutDisplayFunc(display); + glutMainLoop(); + return 0; +} \ No newline at end of file diff --git a/AULA2/main b/AULA2/main new file mode 100755 index 0000000000000000000000000000000000000000..ea2daa50ff940567a6d10894deb6c7e759b548c0 GIT binary patch literal 21432 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 literal 0 HcmV?d00001 diff --git a/AULA2/main.cpp b/AULA2/main.cpp new file mode 100644 index 0000000..2797262 --- /dev/null +++ b/AULA2/main.cpp @@ -0,0 +1,35 @@ +#include + +void display(void) +{ + glClearColor(0, 0, 0, 0); + glClear(GL_COLOR_BUFFER_BIT); + + glColor3f(0,0,0); + + glMatrixMode(GL_PROJECTION); + glLoadIdentity(); + gluOrtho2D(-2, 2, -2, 2); + + glBegin(GL_POINTS); + glVertex2f(-0.5, -0.5); + glVertex2f(-0.5, 0.5); + glVertex2f(0.5,0.5); + glEnd(); + + + +} + +int main(int argc, char **argv) +{ + glutInit(&argc, argv); + glutInitDisplayMode(GLUT_SINGLE | GLUT_RGB); + glutInitWindowSize(500, 500); + glutCreateWindow("GLUT: Exercicio 1"); + + glutDisplayFunc(display); + glutMainLoop(); + + return 0; +} \ No newline at end of file diff --git a/AULA2/main2.cpp b/AULA2/main2.cpp new file mode 100644 index 0000000..1cbebcd --- /dev/null +++ b/AULA2/main2.cpp @@ -0,0 +1,28 @@ +#include + +void display(void) { + + glClearColor(0, 1, 0, 0); + glClear(GL_COLOR_BUFFER_BIT); + + glFlush(); +} + +// Setup the rendering state +void SetupRC(void) { + // Set clear color to blue + glClearColor(0.0f, 0.0f, 1.0f, 1.0f); +} + +int main(int argc, char **argv) { + glutInit(&argc, argv); + glutInitDisplayMode(GLUT_SINGLE | GLUT_RGB); + glutInitWindowSize(500, 500); + glutCreateWindow("GLUT: Simple"); + + glutDisplayFunc(display); + + glutMainLoop(); + + return 0; +} \ No newline at end of file diff --git a/AULA2/main3 b/AULA2/main3 new file mode 100755 index 0000000000000000000000000000000000000000..69a44afeac19ae714328086a8ee2844851e0a0a2 GIT binary patch literal 22024 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 KI$a7bRQv}ghrv|< literal 0 HcmV?d00001 diff --git a/AULA2/main3.cpp b/AULA2/main3.cpp new file mode 100644 index 0000000..7e3b0d6 --- /dev/null +++ b/AULA2/main3.cpp @@ -0,0 +1,51 @@ +#include +#include +#include +// Called to draw scene +void RenderScene(void) { + // Clear the window with current clearing color + glClear(GL_COLOR_BUFFER_BIT); + // Set current drawing color to red :R G B + glColor3f(1.0f, 0.0f, 0.0f); + // Draw a filled rectangle with current color + glRectd(100.0f, 150.0f, 150.0f, 100.0f); + // Flush drawing commands + glFlush(); +} + +// Setup the rendering state +void SetupRC(void) { + // Set clear color to blue + glClearColor(0.0f, 0.0f, 1.0f, 1.0f); +} +// Called by GLUT library when the window has cahnge size +void ChangeSize(GLsizei w, GLsizei h) { + // Prevent a divide by zero + if (h == 0) + h = 1; + // Set Viewport to window dimensions + glViewport(0, 0, w, h); + + // Reset coordinate system + glMatrixMode(GL_PROJECTION); + glLoadIdentity(); + // Establish clipping volume (len, right, booom, top,near, far) +if (w <= h) +glOrtho (0.0f, 250.0f, 0.0f, 250.0f*h/w, 1.0, -1.0); +else glOrtho(0.0f, 250.0f * w / h, 0.0f, 250.0f, 1.0, -1.0); +glMatrixMode(GL_MODELVIEW); +glLoadIdentity(); +} + +// Main program entry point +int main(int argc, char **argv) { + glutInit(&argc, argv); + glutInitDisplayMode(GLUT_SINGLE | GLUT_RGB); + glutInitWindowSize(400, 350); + glutInitWindowPosition( 10, 10); + glutCreateWindow("GLUT: GLRect"); + glutDisplayFunc(RenderScene); + glutReshapeFunc(ChangeSize); + SetupRC(); + glutMainLoop(); +} \ No newline at end of file diff --git a/AULA3/main b/AULA3/main new file mode 100755 index 0000000000000000000000000000000000000000..9c0847c4014f47bd10888c642e2760b61c0fe79e GIT binary patch literal 21080 zcmeHPYm^+tb*}E2-kDX;zVuv4h@A!TvaDIX(E~}dT0KTWkJSqcY#7bX%gRpUocx}F~x@vZ| zv*W|@N%ALC=XBk=U)_7F>Q;4ibys))-kObTO~Vj6c*F`p?nI-5gjL3_^(p}p7K=qa z;+f)HQ3Kv9F(*Il5ac?c(KDL*6;7CX1(olnXDK;Nbqz_WS1H`C3eZ%jc2LivlH%R; zpy^oDROgq<3p)A2MF%K=plP`tebYZ%W{dviqv>f?-g}B_J+jmrRCZW>hbn(FelpDZMPoANr9-b`iC zO&6&0G}Yy8g&zI+NrN69+f;d#`tOkH2Tj#5kiMLV!q^S#Ht!SQCkG zntIPo_ia1kd9^K_>RPm*EuEO1PGyP%vj-M0n!RX2D4z|@ljk07X?vfv-VZ`>{20QY zt$_bK@N>qH|NRQ`KdgX1TLJ$;1$=DBJ=8`?Bd?A_Jv8f}S%_Miky3$DzjrR0qGtqn@mMcV~j_8yH^6MQ~CaMY~R{qCNBB)nN&exo3e>y33F7o zr>=2Bo!NYsNI|=Y{4k5IQ+8v`}{kPcb!}X{baE zVT#r0Y<<4|#o^mvYjW@bHNR@SU*WsLPQJ!9e{7|L zb51F*+uxSq@;c*)i4$dbKw%_5EW_)|@Yl=mhB91)9mWTunj`^#8BTxc&=_`7l-F}1 zk>)UCA&8gHi@`8a2WOrR7lxe_G3^T?bHa=rc{sWh7KfcA<;Rs!TtCWiy9|$%;dNzr zHCgpQ)dN)zR6S7jK-B~Pdmi{@!`bgg_W#Tuxy3r(CPd_hV+C{gL}dT>{LjfkhZlYy z@bGyrAZ}<0BSpTKd8b|F)ED&# zi|!Gg_D=Ocb|-8+EyB=DeLOrobT6VqS3XDdmko_G=GF_*-SGBHIF8?9T_Cy4v7tX0 zk-{KoJaFBIkpsokkz012jvQQr^ed4Ae>1cMLQkWTVyFeFr*@%lpAMo!hjx=qAmeF9 zLvMUEJPbcRjAb0vwjp=uTGR|!lmysjVrL-tB<&r?5G#$p(uiYDHB>!N^+44FRS#4> zQ1w97162=HJy7*P)dN)z{7-v;`zY%+?%c67xFc04rnA9BEVv<-Nv2~gX;AJ)7}Gt= z=78f(`iE~15A$yCq0_^|8$rMR&hYS;K#zhx1o{T(3!vNsWiYPUCX9hbV|u{nKZF}_ z;@s2U1^x3Wu-YfLaAqR80LLNNKSI2|aczC`h6a1De^9KPw(L{$XP!ftx}U?*gmNYm zXs>U)(d?+J*@^Q1w97162=HJy7*P)dN)z{QvNPe(y}b zXQuBL&Zy>V-m4OtZ*=i9T>Ph9{2~|6cjXuY4k^7jr{B36R4+$PRr&gTx#^16?|w~F zynb(v_gf4)|5qOmXUQMpjxU0K7jBM9aATL@h|1URh$U71^t)lrj+mIFs3uBH45|0z zxY5jT+99R;PHq@8OmT>~UjZ5)QWeqlKBnaK{hTiUgJGvV$d;nmz?AKKQt4x3Q}U|% z0=Ko2=i7)3XB4mN?V$hnv3`HtUGgH{q#~?U^fE=e72Tugjf&o;=rLEJzk#=f*!;F2*|j5P@K7E@_a~pjG9N8V_Iv#P4Zf)OaYv) z1tK1=_s0Oo-9hoe#uUZ<-uo%;_nDGd?*g3cxA=N8Og#y(fobcTh^APNAZ{MFg_$R( z><0<>!%x84Ye>p7uDzBoX4mJEePWeNdd0XWA>i$>zDx1O$O|x8k3)*DufJJ~Z;(m9 z825L`^j>PcCB?Vx1h-s^Z=b-Vw7x?o{iwP1HYCSgMy;LJG!W}+0MMe3K&EbB;otW( zq?nOGG>sL!9tq=KBxEF}3Q}wcnKVF5ARo5!1Tco+{}*_CiVTwYN(8b$h?0_u2PK`hfksqT?EG?}v^dh|oEK94aO=d8~% z=8@DG2T6R!IugI}d6HV=J`jJbD=+@=3>9WI~qPF$)lTx0yH-j{J%rK%RqS4sj+#V?XKf^w`V>wk>4d%fNUwv$7rtgYU+fO#WcSxXKlsUpi0-glU{-P^z_Ht$DEDz_fRW6}Z%~#=+>;sA-_Uo1Qw3P=l>?x9{vAB^o_-9J@}lT3%uO z+nw&H`3Eu`W*x_}!Kq5rZbpr+k<%yCM zT_%FhqSV@=Ve|Adt(R<`bf)za#h9z>;nF?layX0SB3FYH@j^Vcoc zBj&uyinv8;`5M$=rPB2RH1WjUTk?>#VQ`Ys5_3Dh^MUQU$0P`#Yc ze2W5d(EBb9a3n)~B?>WpO9D56dK#^RuuPV74k_mtQqC!)oI^-CXOMD^Fnvn{avJt6 z3&?5McS%4_!@lJKISu<(1~~tjpqx8M<+SW;56EfR*Ad{UX8P6!HcE4#(dmn2xXZG>dGw&%wUXz-z0FX`&mcGcuVBBP`R3vD`0Kz-XW{1I-D1L0RJE3i ziPzMs=zOFZj5{Y>gFMeyAg-4@awA0M3BwZWC%}eZEVY-}OYCMao|(e7SJ)oB_2&&4 zE2nzuk!LNj*H5@)s)2l~LD;Q+s@0TdJDJ#3S=wqrymc~d`K5$^X=@Fvw|X-5+DNTZ zZS}HPjgFfvWN8w@R5eOyL^&|QuX`^_hJ<_$yh&u&6&Q$K;5O=$)2Sg zA%PJ;%uo#()jemI%YMhw!XdE@AA%(N&&buG(iE$K<`>xMB)aFJ=@jwS{9o@t=$I#W=R&h~eP1>@FOS<9Hc|X|$LP<9Iu0$jA#tvlfwOJRz|d*3<)cq7}IGZp*mbs#{?-ZL|#kt5)j@tL~)L?4N5*`I&iaDi(auHg-`YNl=4amN2u(xyiuP7itcnaRuFw%h3wwAz$b=1 zK^d{OBU~|)PxWMy3E2qTWCc5B&6<0$`%Wu3yRT5pB$xLjGs#>k4wkK4?tFF{oZaI% zE+H;Xr_oyYA$rB;CHR&xQ^Y5L1M`8c85n?5vfYeQB9`mf!xY?tPyfolOpIP}al-jf zagS5WM7GEeBTMy+_r`M6kHeM9zF4G79o0R>v@8NHhJg&?JUx*|k!7Du?u{3+eOZYP22A^~?NkYY|0^8=9XTrx?o3N^l`Tz;FsM3(6yxKI1=8}JO=2YNg$-fLd2>H&imUL(< z@Fx7_0+}-KPKIF)@N=BxsQ6Og3s+uHC+7 zM|4N~s*P)+rK_oH;S)_JVuhH#uH&Z(TR2IlGSOl_iEH4fzYv7W{}Q0qUWt4*+KUS( z|G(f~Y?WWQr8{5`7l!ix9F$Dr9|Yyg7wHm+;|C9_#k_v3=jvhf{Fx+`5Fsp^lDU2%(cTz-R}o6=%fNy|3ppoePcoP1eS20ZVO_0;-$-z@^1D!P2V zf2gV6FNBB;?)rBE<=&ju*ZXmr1|2o5b)2B(G`$iq_xd!i_xm)Rqx9VMSFlJULEBni z?>B0CObP1p-R<9_^j9f4y??3c=`wxpak}*ffzc;;0_lXt(Ujw>Jm`98>j#y- zrbo1(qAv5|Mwh-`Z)p0ktHZRuHv1))zFzles`st6yu1EiR{GliBB&%4ovBz&-1>JQ zgH_b}dcCSC*XQNIt$#l<%k_5!9cfMZ0H!?X{?piFNR*%d&8<$3reQ6ps9XQ9ftTy+ z`xH%sE`4|X`G^OrUwIBvRKE|P|A*x+PxG4cK{oe7)M;P3FBzCkYa`>;;YN6^{}wVh zcD25~FVO!*3#*Rd`NyF3^f==FEd8(b^?!SgwNYA#3msC5wZ5ijkW;R&-!~Xi`n@Gh zC!zH;zw0IT~CJ_seg%wGHvPl?+!aTyOq8!N6WLU@=&MBSK_5Ct?xen zwZ5kOSYD?~%1C@c8Fbrq%br(3|3RgA9&ez_f?I!X1^p9C9Hk5NiK%S3^;cHV|MfCQ z;h56X#I4W!Ib!a1K5>bo;n5wV3}}5#xz9e9{&!Y73K1<>L7&;KCQ30VbAf#5t|BZ;`qW!zOA`IurX{hzOM^m(6J9$c*WFRbAIX#fBK literal 0 HcmV?d00001 diff --git a/AULA3/main.cpp b/AULA3/main.cpp new file mode 100644 index 0000000..0de6bb3 --- /dev/null +++ b/AULA3/main.cpp @@ -0,0 +1,38 @@ +#include +#include + + +void draw_face(int size){ + GLint i; + glLineWidth(size); + glColor3f(0, 0, 1); + + glBegin(GL_LINE_LOOP); + glVertex2f(1.0,0.0); + for (i = 1; i < CIRCLE_STEPS ; inc-expression) { + + } + +} + +void display() { + glClear(GL_COLOR_BUFFER_BIT); + // O teu desenho fica aqui + glFlush(); +} + +int main(int argc, char** argv) { + glutInit(&argc, argv); + + // Configuracoes basicas da janela + glutInitDisplayMode(GLUT_SINGLE | GLUT_RGB); + glutInitWindowSize(500, 500); + + // Cria a janela com o prefixo obrigatorio + glutCreateWindow("GLUT: Titulo da Janela"); + + glutDisplayFunc(display); + glutMainLoop(); + + return 0; +} \ No newline at end of file diff --git a/AULA3/main2 b/AULA3/main2 new file mode 100755 index 0000000000000000000000000000000000000000..d7acde7b80db6f0d0f9c526aef3fc888d212ce3a GIT binary patch literal 21216 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 VJjOll;9hxl{rxee|GTcg{{y;eB;x=8 literal 0 HcmV?d00001 diff --git a/AULA3/main2.cpp b/AULA3/main2.cpp new file mode 100644 index 0000000..87aa2c5 --- /dev/null +++ b/AULA3/main2.cpp @@ -0,0 +1,38 @@ +#include +#include +#include + +void display() { + glClear(GL_COLOR_BUFFER_BIT); + glColor3f(1, 0, 0); + glBegin(GL_QUADS); + glVertex2f(150,150); + glVertex2f(250, 150); + glVertex2f(50, 50); + glVertex2f(,); + glEnd(); + glFlush(); +} + +void init() { + // Define a cor de fundo (R, G, B, Alpha) - Preto por omissao + glClearColor(0.0f, 0.0f, 0.0f, 1.0f); +} + +int main(int argc, char** argv) { + glutInit(&argc, argv); + + // Configuracoes basicas da janela + glutInitDisplayMode(GLUT_SINGLE | GLUT_RGB); + glutInitWindowSize(400,400); + + // Cria a janela com o prefixo obrigatorio + glutCreateWindow("GLUT: Ex2"); + + + gluOrtho2D(0, 400, 400, 0); + glutDisplayFunc(display); + glutMainLoop(); + + return 0; +} \ No newline at end of file diff --git a/AULA3/main3.cpp b/AULA3/main3.cpp new file mode 100644 index 0000000..9388492 --- /dev/null +++ b/AULA3/main3.cpp @@ -0,0 +1,30 @@ +#include + +void display() { + glClear(GL_COLOR_BUFFER_BIT); + // O teu desenho fica aqui + glFlush(); +} + +void init() { + // Define a cor de fundo (R, G, B, Alpha) - Preto por omissao + glClearColor(0.0f, 0.0f, 0.0f, 1.0f); +} + +int main(int argc, char** argv) { + glutInit(&argc, argv); + + // Configuracoes basicas da janela + glutInitDisplayMode(GLUT_SINGLE | GLUT_RGB); + glutInitWindowSize(800, 600); + glutInitWindowPosition(100, 100); + + // Cria a janela com o prefixo obrigatorio + glutCreateWindow("GLUT: Titulo da Janela"); + + init(); + glutDisplayFunc(display); + glutMainLoop(); + + return 0; +} \ No newline at end of file diff --git a/CG.zip b/CG.zip new file mode 100644 index 0000000000000000000000000000000000000000..411a8df4a6a80c54976d5f6655b7972b034c2574 GIT binary patch literal 13395 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 MC@`>2mfyerA4NrMu>b%7 literal 0 HcmV?d00001