开发工具:
文件大小: 5kb
下载次数: 0
上传时间: 2009-05-26
详细说明: 三维图形c语言编写,可以缩放图形。 /* Note:Your choice is C IDE */ #include "stdio.h" #include "graphics.h" #include "math.h" void hua(int T[8][3]) { moveto(T[0][0]/T[0][2],T[0][1]/T[0][2]); lineto(T[1][0]/T[1][2],T[1][1]/T[1][2]); lineto( T[2][0]/T[2][2],T[2][1]/T[2][2]); lineto(T[3][0]/T[3][2],T[3][1]/T[3][2]); lineto(T[0][0]/T[0][2],T[0][1]/T[0][2]); moveto(T[4][0]/T[4][2],T[4][1]/T[4][2]); lineto(T[5][0]/T[5][2],T[5][1]/T[5][2]); lineto(T[6][0]/T[6][2],T[6][1]/T[6][2]); lineto(T[7][0]/T[7][2],T[7][1]/T[7][2]); lineto(T[4][0]/T[4][2],T[4][1]/T[4][2]); moveto(T[0][0]/T[0][2],T[0][1]/T[0][2]); lineto(T[4][0]/T[4][2],T[4][1]/T[4][2]); moveto(T[1][0]/T[1][2],T[1][1]/T[1][2]); lineto(T[5][0]/T[5][2],T[5][1]/T[5][2]); moveto(T[2][0]/T[2][2],T[2][1]/T[2][2]); lineto(T[6][0]/T[6][2],T[6][1]/T[6][2]); moveto(T[3][0]/T[3][2],T[3][1]/T[3][2]); lineto(T[7][0]/T[7][2],T[7][1]/T[7][2]); } /*/////////////////////////////////////////////////////////////////////////*/ void x(int T[8][3],float af) { int i; float theta =0.00017* af; for(i=0;i<8;i++) { T[i][0]=T[i][0]; T[i][1]=T[i][0]*0+T[i][1]*cos(theta)+T[i][2]*(-sin(theta)); T[i][2]=T[i][0]*0+T[i][1]*sin(theta)+T[i][2]*cos(theta); } hua(T); } /*//////////////////////////////////////////////////////////////////////*/ void y(int T[8][3],float af) { int i; float theta =0.00017* af; for(i=0;i<8;i++) { T[i][0]=T[i][0]*cos(theta)+T[i][2]*sin(theta); T[i][1]=T[i][1]; T[i][2]=T[i][0]*(-sin(theta))+T[i][2]*cos(theta); } hua(T); } /*/////////////////////////////////////////////////////////////////////////*/ void z(int T[8][3],float af) { int i; float theta =0.00017* af; for(i=0;i<8;i++) { T[i][0]=T[i][0]*cos(theta)+T[i][1]*(-sin(theta)); T[i][1]=T[i][1]*sin(theta)+T[i][1]*cos(theta); T[i][2]=T[i][2]; } hua(T); } /*//////////////////////////////////////////////////////////////*/ void projection(int T[8][3],float af,float af1) { int i; float theta =0.017* af; float theta1 =0.017* af1; for(i=0;i<8;i++) { T[i][0]=T[i][0]*cos(theta)+T[i][1]*(-sin(theta)); T[i][1]=0; T[i][2]=T[i][0]*(-sin(theta)*sin(theta1))+T[i][1]*(-cos(theta)*sin(theta1))+T[i][2]*cos(theta1); } hua(T); } /*////////////////////////////////////////////////////////////////////*/ void perspective(int T[8][4],float af,float af1,float q) { int i; float theta =0.017* af; float theta1 =0.017* af1; for(i=0;i<8;i++) { T[i][0]=T[i][0]*cos(theta)+T[i][1]*(-sin(theta)); T[i][1]=0; T[i][2]=T[i][0]*(-sin(theta)*sin(theta1))+T[i][1]*(-cos(theta)*sin(theta1))+T[i][2]*cos(theta1); T[i][3]=T[i][0]*q*sin(theta)*cos(theta1)+T[i][1]*q*cos(theta)*cos(theta1)+T[i][2]*q*sin(theta1)+T[i][3]; } hua(T); } /*//////////////////////////////////////////////////////////////////////*/ void Zperspective(int T[8][3]) { int i; for(i=0;i<8;i++) { T[i][0]=T[i][0]*0.707+T[i][1]*(-0.707); T[i][1]=0; T[i][2]=T[i][0]*(-0.408)+T[i][1]*(-0.408)+T[i][2]*(0.816); } hua(T); } /*==============================================================================================================*/ main() { int gdriver=DETECT,gmode; int T[8][3]={530,390,1,500,420,1,560,420,1,590,390,1,530,450,1,500,480,1,560,480,1,590,450,1}; int TT[8][3]={80,50,1,50,80,1,110,80,1,140,50,1,80,110,50,140,110,140,140,110,80,110,1}; float af,af1,q; initgraph(&gdriver,&gmode,""); cleardevice(); setbkcolor(9);setcolor(4); hua(T); printf("input af:"); scanf("%f",&af); x(T,af); /*****************************/ printf("input af:"); scanf("%f",&af); x(T,af); /*****************************/ printf("input af:"); scanf("%f",&af); x(T,af); /*****************************/ printf("input af:"); scanf("%f",&af); y(T,af); /*****************************/ printf("input af:"); scanf("%f",&af); z(T,af); /*****************************/ /* printf("input af,af1:"); scanf("%f%f",&af,&af1); projection(T,af,af1); printf("input af,af1,q:"); scanf("%f%f%f",&af,&af1,&q); perspective(T,af,af1,q); Zperspective(T); */ getch(); closegraph(); } ...展开收缩
(系统自动生成,下载前可以参看下载内容)
下载文件列表
相关说明
- 本站资源为会员上传分享交流与学习,如有侵犯您的权益,请联系我们删除.
- 本站是交换下载平台,提供交流渠道,下载内容来自于网络,除下载问题外,其它问题请自行百度。
- 本站已设置防盗链,请勿用迅雷、QQ旋风等多线程下载软件下载资源,下载后用WinRAR最新版进行解压.
- 如果您发现内容无法下载,请稍后再次尝试;或者到消费记录里找到下载记录反馈给我们.
- 下载后发现下载的内容跟说明不相乎,请到消费记录里找到下载记录反馈给我们,经确认后退回积分.
- 如下载前有疑问,可以通过点击"提供者"的名字,查看对方的联系方式,联系对方咨询.