小伙伴关心的问题:平面直观图斜二测画法(斜二测画法立体图形怎么画),本文通过数据整理汇集了平面直观图斜二测画法(斜二测画法立体图形怎么画)相关信息,下面一起看看。

平面直观图斜二测画法(斜二测画法立体图形怎么画)

三维图形的斜二测画法

点坐标文件(直接复制粘贴到记事本即可)

0.0 0.0 0.0 0 0.0 0.0 25.0 1 40.0 0.0 25.0 1 40.0 24.0 25.0 1 32.0 24.0 25.0 1 20.0 8.0 25.0 1 0.0 8.0 25.0 1 0.0 0.0 25.0 1 0.0 8.0 25.0 0 0.0 8.0 17.0 1 20.0 8.0 17.0 1 20.0 8.0 25.0 1 20.0 8.0 17.0 0 28.0 16.0 0.0 1 0.0 16.0 8.0 1 0.0 8.0 17.0 1 0.0 16.0 8.0 0 0.0 16.0 0.0 1 28.0 16.0 0.0 1 28.0 16.0 8.0 1 28.0 16.0 0.0 0 32.0 24.0 0.0 1 40.0 24.0 0.0 1 40.0 24.0 25.0 1 32.0 24.0 25.0 0 32.0 24.0 0.0 1 0.0 16.0 0.0 0 0.0 0.0 0.0 1

代码

void CMy11View::OnDraw(CDC* pDC) { CMy11Doc* pDoc = GetDocument(); ASSERT_VALID(pDoc); // TODO: add draw code for native data here FILE *fp=NULL; //定义文件指针 float x[28],y[28],z[28],x1[28],y1[28],z1[28],t[4][4]={1,0,0,0,0,1,0,0,0.3535,-0.3535,0,0,0,0,0,1}; //浮点数类型定义原数据与变换后的数据,以及二维数组存储的变换矩阵 int i,ip[28]; //整数类型定义循环变量i和控制变量ip fp=fopen("d:\\dian.txt","r"); //打开文件 for(i=0;i<28;i++) { fscanf(fp,"%f%f%f%d",&x[i],&y[i],&z[i],&ip[i]); } //读取文件信息,注意fscanf函数的格式 CPen mypen; mypen.CreatePen(PS_SOLID,1,RGB(255,255,255)); //定义画笔 for(i=0;i<28;i++) { x1[i]=x[i]*t[0][0]+y[i]*t[1][0]+z[i]*t[2][0]+50; y1[i]=x[i]*t[0][1]+y[i]*t[1][1]+z[i]*t[2][1]+50; z1[i]=x[i]*t[0][2]+y[i]*t[1][2]+z[i]*t[2][2]; } //计算变换后的坐标,记住公式 for(i=0;i<28;i++) { if(ip[i]==0) { pDC->MoveTo(2*x1[i],2*y1[i]); } else { pDC->LineTo(2*x1[i],2*y1[i]); } } }

运行结果

步骤总结

1.定义文件指针(FILE *fp=NULL;)

2.定义变量类型

3.打开文件,读取数据(fp=fopen(文件位置+文件名);fscanf(fp,"按数据类型存入",存入地址))

4.定义画笔(CPen mypen; mypen.CreatePen(PS_SOLID,1,RGB(255,255,255));)

5.绘图

更多平面直观图斜二测画法(斜二测画法立体图形怎么画)相关信息请关注本站,本文仅仅做为展示!