下载此文档

计算机图形实验报告.doc


文档分类:高等教育 | 页数:约16页 举报非法文档有奖
1/16
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/16 下载此文档
文档列表 文档介绍
-
. z.
一、实验目的
1、掌握中点Bresenham直线扫描转换算法的思想。
2掌握边标志算法或有效边表算法进展多边形填充的根本设计思想。
3掌握。并用直线连接这些二维投影坐标点形成每一个面在投影面的图形,依次将立方体的6个面画出即可。
-
. z.
核心代码如下:
void CTestView::OnDraw(CDC* pDC)
{
CTestDoc* pDoc = GetDocument();
ASSERT_VALID(pDoc);
// TODO: add draw code for native data here
CRect Rect;
GetClientRect(&Rect);
int Ma**=;
int Ma*Y=;
pDC->SetMapMode(MM_ANISOTROPIC);
pDC->SetWindowE*t(1, 1);
pDC->SetViewportE*t(1, -1);
pDC->SetViewportOrg(Ma**/2, Ma*Y/2);//设置视点原点在屏幕中心
DrawObject(pDC);
}
void CTestView::ReadPoint()//读入8个顶点坐标
{
//每一行代表正方体每个顶点的*,y,z坐标
int a=200;//正方体边长
P[1][1]=-a/2;P[1][2]=-a/2;P[1][3]=-a/2;
P[2][1]=-a/2;P[2][2]=a/2;P[2][3]=-a/2;
P[3][1]=-a/2;P[3][2]=a/2;P[3][3]=a/2;
P[4][1]=-a/2;P[4][2]=-a/2;P[4][3]=a/2;
P[5][1]=a/2;P[5][2]=-a/2;P[5][3]=-a/2;
P[6][1]=a/2;P[6][2]=a/2;P[6][3]=-a/2;
P[7][1]=a/2;P[7][2]=a/2;P[7][3]=a/2;
P[8][1]=a/2;P[8][2]=-a/2;P[8][3]=a/2;
-
. z.
}
void CTestView::ReadFace()//读入6个面坐标
{
//第一列为每个面的边数;其余列为面的顶点编号
F[1][0]=4;F[1][1]=1;F[1][2]=2;F[1][3]=3;F[1][4]=4;
F[2][0]=4;F[2][1]=1;F[2][2]=4;F[2][3]=8;F[2][4]=5;
F[3][0]=4;F[3][1]=5;F[3][2]=6;F[3][3]=7;F[3][4]=8;
F[4][0]=4;F[4][1]=6;F[4][2]=2;F[4][3]=3;F[4][4]=7;
F[5][0]=4;F[5][1]=8;F[5][2]=7;F[5][3]=3;F[5][4]=4;
F[6][0]=4;F[6][1]=5;F[6][2]=6;F[6][3]=2;F[6][4]=1;
}
void CTestView::DrawObject(CDC *pDC)//绘制立方体
{
int TotalEdge,PointNumber;
int *t,yt,zt,*,y,z;//边的点坐标
CPen MyPen,* OldPen;
double *2d,y2d;//屏幕坐标系的二维坐标点
(PS_SOLID,3,RGB(0,0,0));
OldPen=pDC->SelectObject(&MyPen);
for(face=1;face<=6;face++)
{
TotalEdge=F[face][0];//面的总边数
for(int edge=1;edge<=TotalEdge;edge++)//边循环
{
PointNumber=F[face][edge];//面的顶点号
*=P[PointNumber][1];//每个顶点的*,y,z坐标
y=P[PointNumber][2];
z=P[PointNumber][3];
Project(*2d, y2d, *,y,z);
-
.

计算机图形实验报告 来自淘豆网www.taodocs.com转载请标明出处.

非法内容举报中心
文档信息
  • 页数16
  • 收藏数0 收藏
  • 顶次数0
  • 上传人hnxzy51
  • 文件大小63 KB
  • 时间2022-07-18
最近更新