Upload
others
View
0
Download
0
Embed Size (px)
Citation preview
����� ������� � ���
���� ����� ��� � ������ � � � ��������� � ��������� � ���������� ����������� ��� !"��� �����# ��� �������$������ ���� �� �&%'��� (���� � ���)"�����*)"�����+����(�� ���,�-+-&.�/'-+0
$+����� �����$+����� �����$+����� �����$+����� �����10+20+20+20+24365 713815:9 81;=<6>"9?86@9 ;A36B 71;=71CD 815 7
E�F&G H'IKJLF'G M N'MPO'Q�M RPS T&U�M?E+V'W S M U�T&X&M F&W MZY Y�O�[&\&\']'^ \'_`O+a�N'M b&T'G R&M S c*X&T&W W d Y N R:V&ePG M F?fg[ ^ ] \
h ;Ai69 71CD 7j@19?k�l"9 B m6363<njo�prq srtPsru=vrwrx v=yzs={rvrw�v=|z}ru=v=~r��sr� �rwr~r�rv=sr� x tP}r�� $������+��� �� ������ ����� (������ � ����*%'� ������&%'� ����� �� ���� ����$��� ��� ������� � ��� � # � #��z�� � ����� ���������(���� � ��� ��� ���� ���&��/'� #�#��� �����+����+����+���������+����&����� �+���+����(��������+������������� (���� � ������ ��� ��� � ��� �*%'����� � (������ �� �� � ��� ��� � ����������� ��(��� ����������$�������$�� � � ���+��� � ������Z��(������ �+��� ������6� � �L�g� �&�?� ��� �& g¡g�&¢�£ �g¤Z¥L¦L§g¨L� ¡L© ¦L¨g¢&¨Lªg¡g�&�
� �������� �����
�6«�¡g¤Z¬ g£ �z® �&¥g� � ¯ ¥g�:�z® ¦L�g� ¡g� ¡K�&�&¨g¤ ¬ �&¨g¤ ¡*� ¨*� ¡g°"±+§g¡L�'�&�g¤ �:�*§g¬&� ¨g²*� ¬ gªL¥g¨LªgªL¬ ³ g� � ¦´³ © © µ&�&ª´¶ ¬ �:� ¬ ¶ �&g¤'¶ ¬ � © ·¸� ¨g¤ ¬ g¬ © ¹Lº´±
E�F&G H'IKJLF'G M N'MPO'Q�M RPS T&U�M?E+V'W S M U�T&X&M F&W MZY Y�O�[&\&\']'^ \'_`O+a�N'M b&T'G R&M S c*X&T&W W d Y N R:V&ePG M F?fL» ^ ] \
• Simple DirectMedia Layer – cross-platform multimedia library
– GNU LGPL
– fornisce accesso (a livello abb basso) a
• audio,
• keyboard, mouse, joystick,
• windowing
• 3D hardware via OpenGL
• 2D video framebuffer.
– gira su: Linux, Windows, BeOS, MacOS X ...
– completato di librerie "figlie" per vari scopo (e.g. SDL_png per file png)
– C++¼ ��� � ��2 / / ������� � � ������� � ��� � E�F&G H'IKJLF'G M N'MPO'Q�M RPS T&U�M?E+V'W S M U�T&X&M F&W MZY Y�O�[&\&\']'^ \'_`O+a�N'M b&T'G R&M S c*X&T&W W d Y N R:V&ePG M F?fg] ^ ] \
½ D�5:mD D�m65 8¾365 <6¿15 81;A;=8njÀ�x tP�rx x �rtPs=|z� srÁzÁzq |zs=ÂrvrqzÃrtP}rÄrtPsru=uÅqzs=� q wrvrs=Ârqz|z}ru=srwrÂr}rÆ
main(){
init();do_my_beautiful_algorithm();exit();
}
g�LKµ&¨`²g¡Lg¡*¦L¡g¤¨g¦L¦g� ¬ �&¨g°&¬ �Lg¬Ç ÈLÉ ÊgË ÌgÉ É Ç Í ÊÇ ÈLÉ ÊgË ÌgÉ É Ç Í ÊÇ ÈLÉ ÊgË ÌgÉ É Ç Í ÊÇ ÈLÉ ÊgË ÌgÉ É Ç Í Ê�Î
E�F&G H'IKJLF'G M N'MPO'Q�M RPS T&U�M?E+V'W S M U�T&X&M F&W MZY Y�O�[&\&\']'^ \'_`O+a�N'M b&T'G R&M S c*X&T&W W d Y N R:V&ePG M F?fL_ ^ ] \
½ D�5:mD D�m65 8¾365 <6¿15 81;A;=8Ï ½ 9 k�D 71;=8j8j76l�71CD�9ÐÒÑ s=|zsr� � {rsr|zÓ Ñ6Ô } Ñ s=u=vrÁzÁzsrÄrv=prsrw�Âr� vrtPÁ Ñ vr|z|zÕ
main(){
init();while (true) {get_event() ;process_event();
}} ¡gµ&¡gL� ¬&� ¬ ¦g�´³�ZÖ*�g¥g�:¡z® � ¨g�&� ¬ ¡g¤ ¨´¶ ¶ ¶�Z�&¬ �&� ¡LÖ*¨*§g¬&£ ¬ L¬ �&� ¤ ¡�Z¤ ¡g�& L¨L¦g¡´® ÖK¬ g¬ Ö*¬ °&°&¨g°&¬ �gL¡z¶ ¶ ¶�ZªL¡gL¡g¤ ¨L� ¬&§L¨L� � ¯ ¨g¦L¦g� ¬ �&¨g°:¬ �Lg¡*�&� ¡g�&�&¨�Z�*§L¨*� g¤ ¡g¨L§*§L¬ £ £ ¡g¤ ¡gL� ¬ E�F&G H'IKJLF'G M N'MPO'Q�M RPS T&U�M?E+V'W S M U�T&X&M F&W MZY Y�O�[&\&\']'^ \'_`O+a�N'M b&T'G R&M S c*X&T&W W d Y N R:V&ePG M F?fL× ^ ] \
Ø 8¾;A9 C69 ;=8j813636B 9 >�86ÙÚ9 <1C7 ½ÜÛ Ø6Ý6Þ 7686@6715 k
#ifdef WIN32#define WIN32_LEAN_AND_MEAN#include <windows.h>#endif
#include <GL/gl.h>#include <GL/glu.h>#include <stdlib.h>#include <SDL.h>
E�F&G H'IKJLF'G M N'MPO'Q�M RPS T&U�M?E+V'W S M U�T&X&M F&W MZY Y�O�[&\&\']'^ \'_`O+a�N'M b&T'G R&M S c*X&T&W W d Y N R:V&ePG M F?fLß ^ ] \
Ø 8¾;A9 C69 ;=8j813636B 9 >�86ÙÚ9 <1C7 ½ÜÛ Ø6Ý ;=819 Cint main(int argc, char **argv) { SDL_Init(SDL_INIT_VIDEO);SDL_SetVideoMode(640, 480, 0, SDL_OPENGL);
int done = 0;while ( ! done ) /* Loop, drawing and checking events */{myDrawGLScene(); /* Questa poi la vediamo */SDL_Event event;SDL_WaitEvent(&event);switch(event.type)
{ case SDL_QUIT : done = 1; break ;case SDL_KEYDOWN :
if ( event.key.keysym.sym == SDLK_ESCAPE )done = 1;
break;}
}SDL_Quit();return 1;
}
E�F&G H'IKJLF'G M N'MPO'Q�M RPS T&U�M?E+V'W S M U�T&X&M F&W MZY Y�O�[&\&\']'^ \'_`O+a�N'M b&T'G R&M S c*X&T&W W d Y N R:V&ePG M F?fLà ^ ] \
á 76¿1B 9 < Ý
Ͼâ 9 @19 k�76¿1C8¾B 8jk�>�71C8jD�5 <13637jl�<1B D 7Ïjã 76k�D�9 81;=<j81C> Þ 7¾B ä 76l�71CD <å C76>�76k�k"9 D 86ä�@19�5:9 @19 k�76¿1C815 76æϾç 71B?>"9 >"B <j@676¿1B 9?76l�71CD�9 Ýcase SDL_VIDEOEXPOSE :
myDrawGLScene(); break; Ͼè D <6¿1B 9 81;=<¾9 B
myDrawGLScene@�81B?>"9 >"B <
@676¿1B 9?76l�71CD�9
E�F&G H'IKJLF'G M N'MPO'Q�M RPS T&U�M?E+V'W S M U�T&X&M F&W MZY Y�O�[&\&\']'^ \'_`O+a�N'M b&T'G R&M S c*X&T&W W d Y N R:V&ePG M F?fLé ^ ] \
Ø 8¾;A9 C69 ;=8 813636B 9 >�86ÙÚ9 <1C7 ½ÜÛ Ø ÝB 8¾3815 D 7j> Þ 7j@19 k�76¿1C8
void DrawGLScene(){
glClear(GL_COLOR_BUFFER_BIT);
/* disegna tutto */
glFinish(); /* aspetta che sia tutto finito */SDL_GL_SwapBuffers(); /* questa fra un sec */
}
E�F&G H'IKJLF'G M N'MPO'Q�M RPS T&U�M?E+V'W S M U�T&X&M F&W MZY Y�O�[&\&\']'^ \'_`O+a�N'M b&T'G R&M S c*X&T&W W d Y N R:V&ePG M F?f�ê \ ^ ] \
Û <1m6i6B 7¾i6më ë 715:9 C¿
ì íîïïðñòó
ô õö÷øùø öúù ûù üýþ ÿ� � � ������� � � ��� � � � � � � �
� ðíòó �ó�í�óðòò îòóô û�÷úùù ÷�� � � ��� � ��� � ������ � � ������ �! �
"#$%&' ()* #+*
%,-. -($$,+' #� � � /�0
� ��� � ��� � ������ ��������� � �� � � /�0
� ��� � ��� � �����0� � � �� � � /�0
Ï21 9 >�>�<1B <jD�5:m>�>�<¾mD�9 B 7j81B B 7j813636B 9 >�86Ù"9 <1C69�9 CD 715 86D D�9 l�7Ð wrsrÁz|z}rwrÂrvrtPv=q �43 tPsru=v={��53 3 vrt`u=vrwrx tPv=yzq vrwrv=tPq vru=Ãrq x }
� � ������� � � ���76� 8 � 9 � : � ; < 8 � � = �
��!> � ?��� @
E�F&G H'IKJLF'G M N'MPO'Q�M RPS T&U�M?E+V'W S M U�T&X&M F&W MZY Y�O�[&\&\']'^ \'_`O+a�N'M b&T'G R&M S c*X&T&W W d Y N R:V&ePG M F?f�ê ê ^ ] \
Û <1m6i6B 7¾i6më ë 715:9 C¿
ì íîïïðñòó
ô õö÷øùø öúù ûù üýþ ÿ� � � ������� � � ��� � 8 � 9 � : � ; < 8 � � = �
� ðíòó �ó�í�óðòò îòóô û�÷úùù ÷�� � � ��� � ��� � ������ � � ������ �! �
"#$%&' ()* #+*
%,-. -($$,+' #� � � /�0
� ��� � ��� � ������ ��������� � �� � � /�0
� ��� � ��� � �����0� � � �� � � /�0
Ï21 9 >�>�<1B <jD�5:m>�>�<¾mD�9 B 7j81B B 7j813636B 9 >�86Ù"9 <1C69�9 CD 715 86D D�9 l�7Ð wrsrÁz|z}rwrÂrvrtPv=q �43 tPsru=v={��53 3 vrt`u=vrwrx tPv=yzq vrwrv=tPq vru=Ãrq x }
� � ������� � � ���76� � � � � � � ��!> � ?��� A
E�F&G H'IKJLF'G M N'MPO'Q�M RPS T&U�M?E+V'W S M U�T&X&M F&W MZY Y�O�[&\&\']'^ \'_`O+a�N'M b&T'G R&M S c*X&T&W W d Y N R:V&ePG M F?f�ê [ ^ ] \
ì íîïïðñòó
ô õö÷øùø öúù ûù üýþ ÿ�
â 9 86k�k"m6CD <¾36m6CD 86D 7¾365 76>�76@67�CD�9CB�D E
� ðíòó �óô û�÷úùù ÷�F � ��� G����%'� ����� �H N T W W IR H G T T N f e V I I T G J� ðíòó �
ó�í�óðòò îòóô û�÷úùù ÷�� �
K� ��� � ��� � ������ � � ������ �! �
"#$%&' ()* #+*
%,-. -($$,+' #
L
M
NO P O Q
O R
� � � /�0
O P O QO R
� ��� � ��� � ������ ��������� � �� � � /�0
� ��� � ��� � �����0� � � �� � � /�0
"#$%&' ()* #+*
%,-S,-'* ",
�g¤ ¨*§L¬�Tg¥L¬�&¨g¦g¦L¬ ¨gÖ*�*� ¥L� � �
E�F&G H'IKJLF'G M N'MPO'Q�M RPS T&U�M?E+V'W S M U�T&X&M F&W MZY Y�O�[&\&\']'^ \'_`O+a�N'M b&T'G R&M S c*X&T&W W d Y N R:V&ePG M F?f�ê » ^ ] \
½ D�5:mD D�m65 8 h 3636B 9 >�86Ù"9 <1C7VU 371C ã Ø�W ½ÜÛ Ø
������������
������������ �������������� ��
����� ������ ��
��������������� ����������
����� ������ ��
��������������� ����������
������
��������������������������������������������
�������
���
�������
���
��������������������������������
E�F&G H'IKJLF'G M N'MPO'Q�M RPS T&U�M?E+V'W S M U�T&X&M F&W MZY Y�O�[&\&\']'^ \'_`O+a�N'M b&T'G R&M S c*X&T&W W d Y N R:V&ePG M F?f�ê ] ^ ] \
ç <1CjB <jk�D�m@19 81;=<VX1m69 Y6;=8j76k"9 k�D 7Ï Û 9 5 76>�D E ÛÐ[Z srtPx v=Ârq4\�q tPvr|zx ]¼ ��� ��� �����&%'�
Ð À�x vrÁzÁzqzÁz|z}rÃrqzÂrq4^ Ãrvrw5_a`¼ ���*)"�����+���������� �� ���� ������������� �&����� �¼ ��� � ��� � ��� ����+���� ����� (�� � �
Ð `5b sr� x vrtPwrsrx q yzs=Ãrq �5b�|z}ru=�rwrv=sc^ Ãrv�w5_a`
E�F&G H'IKJLF'G M N'MPO'Q�M RPS T&U�M?E+V'W S M U�T&X&M F&W MZY Y�O�[&\&\']'^ \'_`O+a�N'M b&T'G R&M S c*X&T&W W d Y N R:V&ePG M F?f�ê _ ^ ] \
Ï U 371C ã 5 813 Þ 9 > Ø 81C¿1m86¿67Ï Ø 9 i65 715:9 8VdÐ o�tP}rÁzÁ Ãr� srx 3 }rtPuÐ[e �rsr� |zprv=|zvrwrx q wrsrq }=ÂrqztP}��rx q wrvrÁ
ÏVfgfgfih <1371C¿1B h <15 ¿Ð ÁzÃrvr|zq 3 q |zprv
½ 376>"9 ë�9 > Þ 7l�715kj h l
E�F&G H'IKJLF'G M N'MPO'Q�M RPS T&U�M?E+V'W S M U�T&X&M F&W MZY Y�O�[&\&\']'^ \'_`O+a�N'M b&T'G R&M S c*X&T&W W d Y N R:V&ePG M F?f�ê × ^ ] \
njq wrq mzq sr� u=vrwrx v=Ázyzq � �rÃrÃrsrx }=Ârs=À�q � q |z}�wc_ tPsrÃrprq |zÁ
nj}rtPsrÆ^ Ãrvrw5_a` hh hh tP|zprq x vr|zx �rtPv ââ ââ vryzq v5n oo oo }rsrtPÂ� (������ � ����������+��� ��� ���� � p qsrut�v w v t�xur� ����� ��� �������� � �+��� ��2 ,+� -,+� -,+� -,+� -� ���������(����+����� ���+���*����� �
nj|zqzÁz}rwr}=srwr|zprv=� v y5z4{ y5|5z4} ~C|5} ÃrtPq y´srx v� ������� ��� � ��� � � �
½ D <15:9 8
h â oh â oh â oh â o
E�F&G H'IKJLF'G M N'MPO'Q�M RPS T&U�M?E+V'W S M U�T&X&M F&W MZY Y�O�[&\&\']'^ \'_`O+a�N'M b&T'G R&M S c*X&T&W W d Y N R:V&ePG M F?f�ê ß ^ ] \
� 9 >"9 C69?@19?>�86k�8nV^ Ãrvrw5_a` v5�zq �z� s5�zvrt`Ârqz{rsrÁzvnV_a`5� Ô _a`=�rx q � q x vrÁzÕ� � ����� ��(����� %'������� ���������Z��� � � � � ��������� � ��� � �������� ����������"$����� ��� ����(�������+�������� �� ������(���� � void gluLookAt(eyex,eyey,eyez,
cx,cy,cz, upx, upy, upz);
nV_a`5��� v5�zq �4�`}r}r� Ózq xrÂrqzq wrx vrt�3 sr|z|zq sÅ|z}rw=q �zÀ�^nV�AÄr� v _a`5� Áz}rwr}=qzÁz}rx x }rq wrÁzq vru=qzÂ�q4^ Ãrvrw5_a`=|zprvÂrq ÃrvrwrÂr}rwr}=Ârs��zÀ�^
E�F&G H'IKJLF'G M N'MPO'Q�M RPS T&U�M?E+V'W S M U�T&X&M F&W MZY Y�O�[&\&\']'^ \'_`O+a�N'M b&T'G R&M S c*X&T&W W d Y N R:V&ePG M F?f�ê à ^ ] \
½�� CD 8��ÏV� mD D 7¾B 7jë�m6CÙ"9 <1C69?@19�U 371C¿1B?k"9?> Þ 9 81;=81C< Ý
glSomethingXXXÐ \�}ryzvc]�]�]AÁzÃrvr|zq 3 q |zs Ô wr�ru=vrtP}rÕ`q �´x q Ãr}=ÂrvrqzÃrsrtPsru=vrx tPq ÆÐ vrÁzvru=Ãrq }rÆglColor3f(float, float, float);
glColor3fv( float*);3 Æ53 � }rsrxÂrÆrÂr}r�r{r� v=� � �yzÆryzvrx x }rtPvÐ[� }rw=v5�zo��k���
E�F&G H'IKJLF'G M N'MPO'Q�M RPS T&U�M?E+V'W S M U�T&X&M F&W MZY Y�O�[&\&\']'^ \'_`O+a�N'M b&T'G R&M S c*X&T&W W d Y N R:V&ePG M F?f�ê é ^ ] \
½�� CD 8��Ï á 8j81C> Þ 7 Ý
glColor3b, glColor3d, glColor3f,glColor3i, glColor3s, glColor3ub,glColor3ui, glColor3us, glColor4b, glColor4d, glColor4f, glColor4i,glColor4s, glColor4ub, glColor4ui,glColor4us, glColor3bv, glColor3dv,glColor3fv, glColor3iv, glColor3sv,glColor3ubv, glColor3uiv, glColor3usv, glColor4bv, glColor4dv, glColor4fv,glColor4iv, glColor4sv, glColor4ubv, glColor4uiv, glColor4usv E�F&G H'IKJLF'G M N'MPO'Q�M RPS T&U�M?E+V'W S M U�T&X&M F&W MZY Y�O�[&\&\']'^ \'_`O+a�N'M b&T'G R&M S c*X&T&W W d Y N R:V&ePG M F?fg[ \ ^ ] \
o 86k�86D <jk"m6B B <jk�D 86D <Ï2� C8jk�D 86D 7¾;=86> Þ 9 C7Ð srÂ=vrÁzvru=Ãrq }¼ ����� � ����������� ���¼ ������� ��� ������ �����¼ (���� � � ���3 srwrwr}=ÃrsrtPx v=Ârvr� � }=Ázx srx }=|z}rt'tPvrwrx v
Ï á <1B D�9?>�<1;=81C@19�U 371C ã Ø C<1CÅë 81C6C<¾C6m6B B 8Ð Ázv=wr}rw=|zsru={rq srtPv=� }=Ázx srx }
E�F&G H'IKJLF'G M N'MPO'Q�M RPS T&U�M?E+V'W S M U�T&X&M F&W MZY Y�O�[&\&\']'^ \'_`O+a�N'M b&T'G R&M S c*X&T&W W d Y N R:V&ePG M F?fg[ ê ^ ] \
o 86k�86D <jk"m6B B <jk�D 86D <Ï ½ D 86D <j>�<1;A365 71C@67Vj¾;=86D�5:9 >"9��:7j@1m7jk�D 86>��?kC�
Ï2� C8j@19�X1m76k�D 7j76ä�k�71;A365 7¾B 8¾;=86D�5:9 >�7j@19�B 86l�<15 <Ð � s=u=srx tPq |zv=|z}rtPtPvrwrx v
Ï2� >�<1;=81C@19?> Þ 7¾;=<6@19 ë�9 >�81C<¾;=86D�5:9 >"9�B 86l�< 5 81C<k"m�X1m76k�D 8¾;=86D�5:9 >�7
E�F&G H'IKJLF'G M N'MPO'Q�M RPS T&U�M?E+V'W S M U�T&X&M F&W MZY Y�O�[&\&\']'^ \'_`O+a�N'M b&T'G R&M S c*X&T&W W d Y N R:V&ePG M F?fg[ [ ^ ] \
á 86D�5:9 >"9n � }rx srÆrsrÁzÁz�ru=v=|zprv=Ázq srwr}=u=vru=}rt'q m4mzsrx v=Ãrvrt`|z}r� }rwrwrv� ����� � ������������ ������ ��(��(���� ������ �����
����
�
�
����
�
�
151173
141062
13951
12840
aaaa
aaaa
aaaa
aaaa
E�F&G H'IKJLF'G M N'MPO'Q�M RPS T&U�M?E+V'W S M U�T&X&M F&W MZY Y�O�[&\&\']'^ \'_`O+a�N'M b&T'G R&M S c*X&T&W W d Y N R:V&ePG M F?fg[ » ^ ] \
á 86D�5:9 >"9Ï21 715K>�81;Ai69 815 7VX�m81B 7��¾B 8¾;=8�D�5:9 >�7j@19�B 86l�<15 < ÝglMatrixMode(***);GL_MODELVIEWGL_PROJECTION
Ï21 715Ú5:9 ;A369 86Ù�Ù�815 7¾B 8¾;=86D�5:9 >�7j@�9�B 86l�<15 <– glLoadIdentity();– glLoadMatrixf( float* m );
ÏV� mD D�9?¿1B 9?81B D�5:9?>�<1;=81C@19�;=<�@19 ë�9 >�81C<V�+;=<1B D�9 36B 9 >�81C<3715Úm6C=81B D�5 8¾;=86D�5:9 >�7�� B 8¾;=86D�5&9 >�7j>�<15:5 71CD 7 h
E�F&G H'IKJLF'G M N'MPO'Q�M RPS T&U�M?E+V'W S M U�T&X&M F&W MZY Y�O�[&\&\']'^ \'_`O+a�N'M b&T'G R&M S c*X&T&W W d Y N R:V&ePG M F?fg[ ] ^ ] \
á 86D�5:9 >"9Ͼâ <6D 86Ù"9 <1C69
– glRotatef(angle,ax,ay,az);ÏV� 5 86k"B 86Ù"9 <1C69– glTranslatef(dx,dy,dz);Ï ½ >�81B 86D�m65 7 � ���������� %'��� (�� �– glScalef(ax,ay,az);Ïjã 71C715:9 >�8– glMultMatrixf(float f*);
¬ *ªg¤ ¨L§L¬
¨g�&�&¡K§L¬'¤ �g� ¨g°:¬ �Lg¡¦g¨g�&�&¨Lg� ¡*¦L¡g¤�� ¯ �g¤ ¬ ªL¬ L¡
E�F&G H'IKJLF'G M N'MPO'Q�M RPS T&U�M?E+V'W S M U�T&X&M F&W MZY Y�O�[&\&\']'^ \'_`O+a�N'M b&T'G R&M S c*X&T&W W d Y N R:V&ePG M F?fg[ _ ^ ] \
á 86D�5:9 >"9Ï � 9 k�D 8 Ý
void gluLookAt(eyex,eyey,eyez,cx,cy,cz,upx, upy, upz);
�&¡gg� ¤ �z¶ �L¨*§g¬ ¤ ¡g°&¬ �gL¡¡g¯�� �5 r¡7¡&¡ ¢
E�F&G H'IKJLF'G M N'MPO'Q�M RPS T&U�M?E+V'W S M U�T&X&M F&W MZY Y�O�[&\&\']'^ \'_`O+a�N'M b&T'G R&M S c*X&T&W W d Y N R:V&ePG M F?fg[ × ^ ] \
Ï U 3715 86Ù"9 <1C´7jk"m6B B < ½ D 86>�� ÝglPushMatrix()
glPopMatrix()
á 86D�5:9 >"9
E�F&G H'IKJLF'G M N'MPO'Q�M RPS T&U�M?E+V'W S M U�T&X&M F&W MZY Y�O�[&\&\']'^ \'_`O+a�N'M b&T'G R&M S c*X&T&W W d Y N R:V&ePG M F?fg[ ß ^ ] \
Ï á 86D�5:9 >"9?@19�365 <19 76Ù"9 <1C7 ÝglOrtho2D(left, right,
bottom top);void gluPerspective(
fovy,aspect,zNear,zFar);
á 86D�5:9 >"9?@19�365 <19 76Ù"9 <1C7
¬ *ªg¤ ¨L§L¬
E�F&G H'IKJLF'G M N'MPO'Q�M RPS T&U�M?E+V'W S M U�T&X&M F&W MZY Y�O�[&\&\']'^ \'_`O+a�N'M b&T'G R&M S c*X&T&W W d Y N R:V&ePG M F?fg[ à ^ ] \
Ï21 715Kk�76D D 815 7¾9 B?l"9 7 f 3<15 D Ý
glViewPort(int x, int y,
int w, int h);
5 71;A9 C@6715 Ý 9 B�5 81363<15 D <jë�5 8 f 7 Þ @�76l�7j76k�kr715 7¾B <k�D 76k�k�<jk"3´76>"9 ë�9 >�86D <¾C´71B B 8¾;=86D¸5:9 >�7j@19�365 <19 76Ù"9 <1C7¤£
� 9 7 f 3<15 D
E�F&G H'IKJLF'G M N'MPO'Q�M RPS T&U�M?E+V'W S M U�T&X&M F&W MZY Y�O�[&\&\']'^ \'_`O+a�N'M b&T'G R&M S c*X&T&W W d Y N R:V&ePG M F?fg[ é ^ ] \
è l�71CD <�¥ 9 C@6< f4â 76k Þ 813´7Ï ½ m>�>�76@67A81B B ¦P9 C69 Ù"9 <Ð v=}rÄrwrqzyz}r� x s=|zprv=� b �rx vrwrx v|zsru={rq s=Ârq u=vrwrÁzq }rwrqzs�� � sc3 q wrvrÁzx tPsÐ Ârvryz}=ÃrvrtPu=vrx x vrtPv=sr� � b �rx vrwrx v=Ârq43 srt'� }5§rÂr�rtPsrwrx v� b q wrq mzq sr� q m4mzs5mzq }rwrvrÆ
Ð ÄrvrÁzx q }rwrv=Ârvr� � b vryzvrwrx }rÆ � §g¡gµ:�K£ ¨g¤ ¡*§g¬&L¥g�gµ&�*¬ �'�&¡g�L¥L¦K§L¡g�&µ&¬ §L¡L�7¢SDL_SetVideoMode(640,480,0, SDL_OPENGL | SDL_RESIZABLE)
...
case SDL_VIDEORESIZE :SDL_SetVideoMode(event.resize.w,event.resize.h,
0, SDL_OPENGL |SDL_RESIZABLE);myReshapeFunc(event.resize.w,event.resize.h); E�F&G H'IKJLF'G M N'MPO'Q�M RPS T&U�M?E+V'W S M U�T&X&M F&W MZY Y�O�[&\&\']'^ \'_`O+a�N'M b&T'G R&M S c*X&T&W W d Y N R:V&ePG M F?fL» \ ^ ] \
h @686D D 815 7 B 8j>�81;=715 8 81B B 8jë�9 C´7�k�D�5 8 Ý365 <19 76Ù"9 <1C7A<15 D <�¿15 86ë�9 >�8void myReshapeFunc(GLsizei w, GLsizei h){glMatrixMode (GL_PROJECTION); glLoadIdentity ();float ratio=(float)h/(float)w;glOrtho2D(-1,1,-ratio,ratio);
glViewport (0, 0, (GLsizei) w, (GLsizei) h); glMatrixMode (GL_MODELVIEW);
}
E�F&G H'IKJLF'G M N'MPO'Q�M RPS T&U�M?E+V'W S M U�T&X&M F&W MZY Y�O�[&\&\']'^ \'_`O+a�N'M b&T'G R&M S c*X&T&W W d Y N R:V&ePG M F?fL» ê ^ ] \
â 9 >�<15 @6815 7jk�71;A365 7 ÝU 371C ã Ø�¨ k�D 8�D 7¾;=86> Þ 9 C7
¦g¤ ¬ ÖK¬ � ¬ µ&¡Tg¥L¬
¦g¬ ©&¡L� �� ¥g� � �K¬ �&¦g¬ ¦g¡L� ¬ L¡� ¦g¤ �L¬ ¡g°:¬ �Lg¡´® �&¡g� ¥g¦z® ¤ ¨g�&� ¡g¤ ¬ °&°&¨g°&¬ �gL¡z¶ ¶ ¶ ¢
�&� ¨g� �*§g¬�ªr¦L¡g7«C�
������� 0 �! � ��� ���� ?�� � � � � ¬ ��� �� � � � ��� �®! �®��� � � � ¯ ��°
E�F&G H'IKJLF'G M N'MPO'Q�M RPS T&U�M?E+V'W S M U�T&X&M F&W MZY Y�O�[&\&\']'^ \'_`O+a�N'M b&T'G R&M S c*X&T&W W d Y N R:V&ePG M F?fL» [ ^ ] \
d <1;=7jk"9�±Lk"3815 81C<�±=9?D�5:9 81C´¿6<1B 9�C71B�369 371B 9 C´7
glBegin (GL_TRIANGLES);
glVertex3d(x1,y1,z1);glVertex3d(x2,y2,z2);glVertex3d(x3,y3,z3);
glVertex3d(x4,y4,z4);glVertex3d(x5,y5,z5);glVertex3d(x6,y6,z6);
glVertex3d(x7,y7,z7);glVertex3d(x8,y8,z8);glVertex3d(x9,y9,z9);...glEnd();
¦g¤ ¬ ÖK�*� ¤ ¬ ¨gLªL�g� �
�&¡g�&�gL§g�*� ¤ ¬ ¨gLªL�g� �
� ¡g¤ °&�K� ¤ ¬ ¨LLªg�L� �
E�F&G H'IKJLF'G M N'MPO'Q�M RPS T&U�M?E+V'W S M U�T&X&M F&W MZY Y�O�[&\&\']'^ \'_`O+a�N'M b&T'G R&M S c*X&T&W W d Y N R:V&ePG M F?fL» » ^ ] \
d <1;=7jk"9�±Lk"3815 81C<�±=9?D�5:9 81C´¿6<1B 9�C71B�369 371B 9 C´7
glVertex3d(x,y,z);
��������� �glVertex3f(x,y,z);��������� �glVertex3i(x,y,z);��������� �glVertex2d(x,y);��������� �glVertex4d(x,y,z,w);��������� �glVertex4dv(vett);��������� � h h h
�&�g�g¤ §L¬ g¨g� ¨K°5²´³�&�g� � �L¬ g� ¡g�&¨ Î
�&�g�g¤ §L¬ g¨g� ¨kµ¶²�±�&�g� � �L¬ g� ¡g�&¨ Î
E�F&G H'IKJLF'G M N'MPO'Q�M RPS T&U�M?E+V'W S M U�T&X&M F&W MZY Y�O�[&\&\']'^ \'_`O+a�N'M b&T'G R&M S c*X&T&W W d Y N R:V&ePG M F?fL» ] ^ ] \
ç <1CÅk�<1B <glBegin (GL_TRIANGLES);
� ¬ g¡L¨K£ ¬ L¨g� ¡sTg¥L¨gL§L��&¬'£ ¨*� ¨*ªL� ·:g§7� ¢
E�F&G H'IKJLF'G M N'MPO'Q�M RPS T&U�M?E+V'W S M U�T&X&M F&W MZY Y�O�[&\&\']'^ \'_`O+a�N'M b&T'G R&M S c*X&T&W W d Y N R:V&ePG M F?fL» _ ^ ] \
ç <1CÅk�<1B <glBegin (GL_TRIANGLES);Tg¥L¨gg� ¬É Ë Ç ÌLÈ7¸º¹º» Ç'Ë Ì7¼&É ÊgË Ç ½�½&ÌgÉ Ç¦g¡g¤¾Tg¥L¨Lg� ¬Í ÊgË É Ç ¿&Ç�ÀgË ¹gÇ ÊgÉ É ÌgÉ Ç ¹
�g¡K�:¦g¡g�&¬ £ ¬ �& L¡ªr¦g¡L7«5�*g�L¦g¤ ¡g�&�&¤ ¬ µ&�LL�kTL¥L¨g� ¡§g¬ ¨gªL�gL¨L� ¡*¥g�&¨g¤ ¡Á Â Ã Ä Å Æ Ä Æ Ä Ç È Å Æ ÈÆ É Ê Ê Ë Ä Ì´Ç Ê È ÌºÈ Å Í É Î Ä Ï Å È