版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、#include#include#include#include#include#define rad 0.0174532925#define number 24floatunumber=60.,20.,20.,80.,80.,60.,60.,0.,0.,60.,80.,0.,0.,0.,0.,0.,20.,20.,0.,0.,0.,80.,0.,0.,vnumber=20.,60.,60.,0.,0.,20.,20.,20.,20.,20.,0.,0.,20.,20.,60.,60.,60.,60.,60.,60.,0.,0.,0.,0.,wnumber=30.,30.,0.,0.,90.,
2、90.,30.,30.,90.,90.,90.,90.,90.,30.,30.,0.,0.,30.,30.,0.,0.,0.,0.,90.;int ipennumber=3,2,2,2,2,2,2,2,2,2,3,2,2,3,2,2,2,3,2,3,2,2,3,2;int kindnumber=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,1;void draw(float sf,float xc,float yc,float tranm4);void axono2d(float sf,float ox,float oy,float bta,flo
3、at afa,float x,float y,float z,int kp,int kl,int mp);void plot(float x,float y,int ip,int lk);void initm(float unitm4);void mult4x4(float ma4,float mb4,float mc4);void transform(float x0,float y0,float z0,float *x,float *y,float *z,float tranm4);void translation(float l,float m,float n,float tranm4)
4、;void scaling(float sx,float sy,float sz,float tranm4);void rotationx(float xc,float yc,float zc,float alta,float tranm4);void rotationy(float xc,float yc,float zc,float beta,float tranm4);void rotationz(float xc,float yc,float zc,float gama,float tranm4);void projectx(float i,float m,float n,float
5、tranm4);void projecty(float i,float m,float n,float tranm4);void projectz(float i,float m,float n,float tranm4);void mirrxoy(float l,float m,float n,float tranm4);void mirrxoz(float l,float m,float n,float tranm4);void mirryoz(float l,float m,float n,float tranm4);void shearing(float a,float b,float
6、 c,float d,float e,float f,float tranm4);main() int j,m=number; int gd=detect,gm; float tm44=0.; initgraph(&gd,&gm,d:tc); settextstyle(3,0,2); outtextxy(170,4,3d grapfics transformation); setwritemode(1); initm(tm); for(j=1;j=15;j+) setcolor(j); translation(0.,0.,-10.*j,tm); draw(1.,300.,350.,tm); f
7、or(j=1;j=15;j+) setcolor(j); translation(-10.*j,0.,0.,tm); draw(1.,300.,350.,tm); for(j=1;j=15;j+) setcolor(j); translation(0.,10.*j,0.,tm); draw(1.,300.,250.,tm); for(j=1;j=15;j+) setcolor(j); rotationx(0.,0.,0.,24.*j,tm); draw(1.,320.,240.,tm); for(j=1;j=15;j+) setcolor(j); rotationy(0.,0.,10.,24.
8、*j,tm); draw(1.,320.,240.,tm); for(j=1;j=15;j+) setcolor(j); rotationz(0.,0.,10.,24.*j,tm); draw(1.,320.,240.,tm); for(j=1;j=15;j+) setcolor(j); scaling(0.2*j,0.2*j,0.2*j,tm); draw(1.,320.,240.,tm); setwritemode(0); axono2d(1.,320.,240.,-45.,35.2667,u,v,w,ipen,kind,number); projectx(-80.,0.,0.,tm);
9、draw(1.,320.,240.,tm); projecty(0.,-80.,0.,tm); draw(1.,320.,240.,tm); projectz(0.,0.,-80.,tm); draw(1.,320.,240.,tm); getch(); cleardevice(); axono2d(1.,320.,240.,-45.,35.2667,u,v,w,ipen,kind,number); mirrxoy(0.,0.,-60.,tm); draw(1.,320.,240.,tm); mirrxoz(0.,-60.,0.,tm); draw(1.,320.,240.,tm); mirr
10、yoz(-60.,0.,0.,tm); draw(1.,320.,240.,tm); getch(); closegraph(); void draw(float sf,float xc,float yc,float tranm4) int i,m=number; float *px,*py,*pz,xu,yv,zw; float u1number,v1number,w1number; px=&xu; py=&yv; pz=&zw; for(i=0;im;i+) transform(ui,vi,wi,px,py,pz,tranm); u1i=*px; v1i=*py; w1i=*pz; axo
11、no2d(sf,xc,yc,-45.,35.2667,u1,v1,w1,ipen,kind,m); getch(); axono2d(sf,xc,yc,-45.,35.2667,u1,v1,w1,ipen,kind,m); void axono2d(float sf,float ox,float oy,float bta,float afa,float x,float y,float z,int kp,int kl,int mp) float bf,af,ca,cb,cg,sg,xp,yp,zp; int i; bf=bta*rad; af=afa*rad; cb=cos(bf); ca=co
12、s(af); for(i=0;imp;i+) if(xi=0)xp=ox-sf*zi*cb; elsexp=ox+sf*(xi-zi*cb); if(yi=0)yp=oy+sf*zi*ca; elseyp=oy-sf*(yi-zi*ca); plot(xp,yp,kpi,kli); void plot(float x,float y,int ip,int lk) if(ip=3) moveto(int)x,(int)y); else if(lk=0) setlinestyle(userbit_line,0xffff,3); else setlinestyle(userbit_line,0xff
13、ff,3); lineto(int)x,(int)y); void initm(float unitm4) int n; for(n=0;n4;n+) unitmn0=0; unitmn1=0; unitmn2=0; unitmn3=0; unitmnn=1; void mult4x4(float ma4,float mb4,float mc4) int mi,mj,mk; for(mi=0;mi4;mi+) for(mj=0;mj4;mj+) mcmimj=0;for(mk=0;mk4;mk+)mcmimj=mcmimj+mamimk*mbmkmj; void transform(float
14、 x0,float y0,float z0,float *x,float *y,float *z,float tranm4) float xu,yv,zw,h; xu=tranm00*x0+tranm10*y0+tranm20*z0+tranm30; yv=tranm01*x0+tranm11*y0+tranm21*z0+tranm31; zw=tranm02*x0+tranm12*y0+tranm22*z0+tranm32; h=tranm03*x0+tranm13*y0+tranm23*z0+tranm33; (*x)=xu/h; (*y)=yv/h; (*z)=zw/h; void tr
15、anslation(float l,float m,float n,float tranm4) initm(tranm); tranm30=l; tranm31=m; tranm32=n; void scaling(float sx,float sy,float sz,float tranm4) initm(tranm); tranm00=sx; tranm11=sy; tranm22=sz; void rotationx(float xc,float yc,float zc,float alfa,float tranm4) initm(tranm); tranm11=cos(rad*alfa
16、); tranm12=sin(rad*alfa); tranm21=-tranm12; tranm22=tranm11; tranm31=-yc*tranm11+zc*tranm12+yc; tranm32=yc*tranm12+zc*tranm11+zc; void rotationy(float xc,float yc ,float zc,float beta,float tranm4) initm(tranm); tranm00=cos(rad*beta); tranm20=sin(rad*beta); tranm02=-tranm20; tranm22=tranm00; tranm30
17、=-xc*tranm00-zc*tranm20+xc; tranm32=xc*tranm20-zc*tranm00+zc; void rotationz(float xc,float yc,float zc,float gama,float tranm4) initm(tranm); tranm00=cos(rad*gama); tranm01=sin(rad*gama); tranm10=-tranm01; tranm11=tranm00; tranm30=-xc*tranm00+yc*tranm01+xc; tranm31=-xc*tranm01+yc*tranm00+yc; void p
18、rojectx(float l,float m,float n,float tranm4) initm(tranm); tranm00=0; tranm30=l; tranm31=m; tranm32=n; void projecty(float l,float m,float n,float tranm4) initm(tranm); tranm11=0; tranm30=l; tranm31=m; tranm32=n; void projectz(float l,float m,float n,float tranm4) initm(tranm); tranm22=0; tranm30=l; tranm31=m; tranm32=n; void mirrxoy(float l,float m,float n,float tranm4) initm(tranm); tranm22=-1; tranm30=l; tranm31=m; tranm32=n; void mirrxoz(float l,float m,float n,float tranm4) initm(tranm); tranm11=-1; tran
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- ARDS患者舒适度护理
- 安全方案及应急预案
- 医嘱查对的未来发展趋势
- 内镜日常操作技巧培训
- 供电系统电能质量培训课件
- 四川省德阳市广汉中学2026年初三元月三诊一模数学试题文试题含解析
- 福建莆田秀屿下屿中学2026年中考英语试题模拟试题含解析
- 上海市浦东新区部分校2026年初三全真数学试题模拟试卷(3)含解析
- 山西省临汾市襄汾县市级名校2026年初三下学期第二次考试数学试题含解析
- 广州省惠阳市惠城区2026年初三语文试题3月考试(网络)试题含解析
- 2025年初中劳动技术教师招聘考试测试卷及答案
- 2026广东中山市神湾镇神湾社区居民委员会招聘1人考试备考试题及答案解析
- 《红领巾相约中国梦》课件2025-2026学年湖南文艺版音乐三年级下册
- 2026江苏徐州地铁集团下属运营公司招聘笔试备考题库及答案解析
- 医药招商业务管理制度
- 国开2026年春季《形势与政策》大作业答案
- 2026及未来5年中国互联网+企业大学行业市场全景调研及发展趋向研判报告
- 深海探测装备本土化发展与自主可控技术体系分析
- 【网易体育】2026美加墨世界杯营销通案
- 安全健康主题班会课件
- 2026年渔具采购供应合同范本
评论
0/150
提交评论