论坛交流
首页办公自动化| 网页制作| 平面设计| 动画制作| 数据库开发| 程序设计| 全部视频教程
应用视频: Windows | Word2007 | Excel2007 | PowerPoint2007 | Dreamweaver 8 | Fireworks 8 | Flash 8 | Photoshop cs | CorelDraw 12
编程视频: C语言视频教程 | HTML | Div+Css布局 | Javascript | Access数据库 | Asp | Sql Server数据库Asp.net  | Flash AS
当前位置 > 文字教程 > C语言程序设计教程
Tag:新手,函数,指针,数据类型,对象,Turbo,入门,运算符,数组,结构,二级,,tc,游戏,试题,问答,编译,视频教程

三视图的画法

文章类别:C语言程序设计 | 发表日期:2008-9-24 14:43:48

大一的时候学画法几何,感觉很难画三视图。近日,计算机图形学老师教了我们一个三视图的算法,感觉很好。特来发表。因为时间关系,我编了个非凡简单的做为示例。

#include<graphics.h>
int dx[12]={0,60,60,0,0,60,60,0,60,0,60,0}; /*确定组合体X坐标*/
int dy[12]={0,0,120,120,0,0,40,40,80,80,120,120};/*确定组合体Y坐标*/
int dz[12]={0,0,0,0,80,80,80,80,40,40,40,40};/*确定组合体Z坐标*/
int ld[24]={0,1,2,3,0,4,5,6,7,4,10,11,9,8,10,2,3,11,8,6,9,7,1,5};/*确定连接各线的顺序*/
int tl[24]={0,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,0,1,0,1,0,1,0,1};
int i,j,vh=100,vw=120,x,y,x0=250,y0=200;
main()
{
int driver=DETECT,mode=0;
initgraph(&driver,&mode,"");
setbkcolor(BLUE);
setcolor(YELLOW);
zu();
fu();
zo();
fo();
getch();
closegraph();
}
zu()/*主视图*/
{
for(i=0;i<24;i++)
{
j=ld[i];
x=x0-dx[j];
y=y0-dz[j];
if(tl[i]==0)
moveto(x,y);
lineto(x,y);
  }
}

fu()/*俯视图*/

{
for(i=0;i<24;i++)
{j=ld[i];
x=x0-dx[j];
y=y0+dy[j]+vh;
if(tl[i]==0)
moveto(x,y);
lineto(x,y);
  }
}

zo()/*侧视图*/

{
for(i=0;i<24;i++)
{
 j=ld[i];
 x=x0+dy[j]+vw;
 y=y0-dz[j];
 if(tl[i]==0)
moveto(x,y);
lineto(x,y);
  }
}

fo()/*轴侧图*/

{
for(i=0;i<24;i++)
{j=ld[i];
x=x0-0.7071*dx[j]+0.7071*dy[j]+150;
y=y0+0.4082*dx[j]+0.4082*dy[j]-0.8165*dz[j]+150;
 if(tl[i]==0)
moveto(x,y);
lineto(x,y);
  }
}

上一篇:{实例}我编的国旗图形 人气:4426
下一篇:{实例}用递归法解决商人渡河问题 人气:4253
视频教程列表
文章教程搜索
 
C语言程序设计推荐教程
C语言程序设计热门教程
看全部视频教程
购买方式/价格
购买视频教程: 咨询客服
tel:15972130058