hschumann2/TempleOS-Source-Code
0847
1 2U0 Main()3{4 F64 theta=0,phi=0,omega=0;5 CD3I32 poly[4];6 CDC *dc=DCAlias;7 DCDepthBufAlloc(dc);8 dc->flags|=DCF_TRANSFORMATION|DCF_SYMMETRY;9 try {10 while (!ScanChar) {11 DCDepthBufRst(dc);12 DCSymmetrySet(dc,Fs->pix_width/2,Fs->pix_height/2,13 ms.pos.x-Fs->pix_left-Fs->scroll_x,14 ms.pos.y-Fs->pix_top-Fs->scroll_y);15 dc->color=LTBLUE;16 GrLine(dc,Fs->pix_width/2,Fs->pix_height/2,17 ms.pos.x-Fs->pix_left-Fs->scroll_x,18 ms.pos.y-Fs->pix_top-Fs->scroll_y);19 20 Mat4x4IdentEqu(dc->r);21 Mat4x4RotX(dc->r,omega);22 Mat4x4RotY(dc->r,phi);23 Mat4x4RotZ(dc->r,theta);24 DCMat4x4Set(dc,dc->r);25 26 dc->x=Fs->pix_width/2;27 dc->y=Fs->pix_height/2;28 dc->z=500;29 30 dc->color=GREEN;31 poly[0].x=50;32 poly[0].y=150;33 poly[0].z=0;34 poly[1].x=275;35 poly[1].y=100;36 poly[1].z=0;37 poly[2].x=155;38 poly[2].y=200;39 poly[2].z=0;40 poly[3].x=100;41 poly[3].y=200;42 poly[3].z=0;43 GrFillPoly3(dc,4,poly);44 45 dc->color=RED;46 poly[0].x=50;47 poly[0].y=150;48 poly[0].z=50;49 poly[1].x=275;50 poly[1].y=100;51 poly[1].z=50;52 poly[2].x=155;53 poly[2].y=200;54 poly[2].z=50;55 poly[3].x=100;56 poly[3].y=200;57 poly[3].z=50;58 GrFillPoly3(dc,4,poly);59 60 dc->color=BLUE;61 poly[0].x=50;62 poly[0].y=150;63 poly[0].z=-50;64 poly[1].x=275;65 poly[1].y=100;66 poly[1].z=-50;67 poly[2].x=155;68 poly[2].y=200;69 poly[2].z=-50;70 poly[3].x=100;71 poly[3].y=200;72 poly[3].z=-50;73 GrFillPoly3(dc,4,poly);74 75 dc->color=RED+GREEN<<16+ROPF_DITHER;76 poly[0].x=50;77 poly[0].y=150;78 poly[0].z=50;79 poly[1].x=275;80 poly[1].y=100;81 poly[1].z=50;82 poly[2].x=275;83 poly[2].y=100;84 poly[2].z=0;85 poly[3].x=50;86 poly[3].y=150;87 poly[3].z=0;88 GrFillPoly3(dc,4,poly);89 90 dc->color=BLUE+GREEN<<16+ROPF_DITHER;91 poly[0].x=100;92 poly[0].y=200;93 poly[0].z=-50;94 poly[1].x=155;95 poly[1].y=200;96 poly[1].z=-50;97 poly[2].x=155;98 poly[2].y=200;99 poly[2].z=0;100 poly[3].x=100;101 poly[3].y=200;102 poly[3].z=0;103 GrFillPoly3(dc,4,poly);104 105 Refresh;106 DCFill;107 theta+=2.1*pi/180.0;108 phi+=1.1*pi/180.0;109 omega+=0.5*pi/180.0;110 }111 } catch112 PutExcept;113 114 DCFill;115 DCDel(dc);116}117 118Main;119 