- 1、本文档共5页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
计算机图形学实验指导
实验一、直线的扫描转换算法实验
实验目的
掌握中点Bresenham直线扫描转换算法的思想。
实验环境
Windows系统, VC6.0
实验内容
问题描述:给定两个点的坐标P0(x0,y0),P1(x1,y1),使用中点Bresenham直线扫描转换算法画出连接两点的直线。
中点Bresenham直线扫描转换算法原理见课本。
实验基本步骤
首先、使用MFC AppWizard(exe)向导生成一个单文档视图程序框架。
其次、使用中点Bresenham直线扫描转换算法实现自己的画线函数,函数原型可表示如下:
void DrawLine(CDC *pDC, int p0x, int p0y, int p1x, int p1y);
在函数中,可通过调用CDC成员函数SetPixel来画出扫描转换过程中的每个点。
COLORREF SetPixel(int x, int y, COLORREF crColor );
再次、找到文档视图程序框架视图类的OnDraw成员函数,调用DrawLine函数画出不同斜率情况的直线,如下图:
最后、调试程序直至正确画出直线。
实验要求
1写出中点Bresenham直线扫描转换算法的程序并在vc6下编译和调试通过,画出具有各种斜率范围的直线(仅使用GDI函数SetPixel函数)。
2按规定的实验格式写出实验报告,包含实验代码(自己写的画线函数),结果(截图)。
实验二、多边形填充算法实验
实验目的
掌握边标志算法或有效边表算法进行多边形填充的基本设计思想。
实验环境
Windows系统, VC6.0
实验内容
问题描述:给定多边形的顶点的坐标P0(x0,y0),P1(x1,y1),P2(x2,y2),P3(x3,y3),P4(x4,y4)…使用边标志算法或有效边表算法进行多边形填充。
边标志算法或有效边表算法原理见课本。
实验基本步骤
首先、使用MFC AppWizard(exe)向导生成一个单文档视图程序框架。
其次、实现边标志算法或有效边表算法函数,如下:
void FillPolygon(CDC *pDC, int px[], int py[], int ptnumb);
px:该数组用来表示每个顶点的x坐标
py :该数组用来表示每个顶点的y坐标
ptnumb:表示顶点个数
注意实现函数FillPolygon可以直接通过窗口的DC(设备描述符)来进行多边形填充,不需要使用帧缓冲存储。(边标志算法)首先用画线函数勾画出多边形,再针对每条扫描线,从左至右依次判断当前像素的颜色是否勾画的边界色,是就开始填充后面的像素直至再碰到边界像素。注意对顶点要做特殊处理。
通过调用GDI画点函数SetPixel来画出填充过程中的每个点。需要画线可以使用CDC的画线函数MoveTo和LineTo进行绘制,也可以使用实验一实现的画直线函数。
CPoint MoveTo(int x, int y );
BOOL LineTo(int x, int y );
实现边标志算法算法需要获取某个点的当前颜色值,可以使用CDC的成员函数
COLORREF GetPixel(int x, int y );
再次、找到文档视图程序框架视图类的OnDraw成员函数,调用FillPolygon函数画出填充的多边形,如下:
void CTestView::OnDraw(CDC* pDC)
{
CTestcoodtransDoc* pDoc = GetDocument();
ASSERT_VALID(pDoc);
// TODO: add draw code for native data here
//绘制之前先把整个窗口涂上背景色(白色)以便于下面的填充
RECT Rt;
GetClientRect(Rt);
pDC-FillSolidRect(Rt, RGB(255,255,255));
int ptx[] = {10, 100, 200, 150, 80};
int pty[] = {10, 50, 80, 120, 70};
FillPolygon(pDC, ptx, pty, 5);
}
最后、调试程序直至正确。
实验要求
1写出多边形填充的边标志算法的程序并在vc6下编译和调试通过。
2按规定的实验格式写出实验报告,包含实验代码(自己写的画线函数),结果(截图)。
您可能关注的文档
- 《精》计算机图形学第四章图形标准.ppt
- 《精》计算机图形学复习(张彩明版).ppt
- 《精》计算机图形学复习题+试卷.doc
- 《精》计算机图形学复习题+试卷_e.doc
- 《精》计算机图形学复习题目.doc
- 《精》计算机图形学画圆方法.doc
- 《精》计算机图形学基于任意点的旋转变换.ppt
- 《精》计算机图形学计算题目1415(参考答案).doc
- 《精》计算机图形学简明教程_第7章.ppt
- 《精》计算机图形学简明教程_第10章.ppt
- 2024年中国钽材市场调查研究报告.docx
- 2024年中国不锈钢清洗车市场调查研究报告.docx
- 2024年中国分类垃圾箱市场调查研究报告.docx
- 2024年中国水气电磁阀市场调查研究报告.docx
- 2024年中国绿藻片市场调查研究报告.docx
- 2010-2023历年初中毕业升学考试(青海西宁卷)数学(带解析).docx
- 2010-2023历年福建厦门高一下学期质量检测地理卷.docx
- 2010-2023历年初中数学单元提优测试卷公式法(带解析).docx
- 2010-2023历年初中毕业升学考试(山东德州卷)化学(带解析).docx
- 2010-2023历年初中毕业升学考试(四川省泸州卷)化学(带解析).docx
最近下载
- My Life in China and America [容闳自传:我在中国和美国的生活].pdf
- 常熟银行研究报告:回归小微初心,乘风乡村振兴.doc VIP
- 浙商证券-宠物行业从乖宝宠物看宠物赛道:陪伴需求催化宠物新蓝海,食品赛道频现龙头.pdf
- ctgd-sop v5风口安装作业指导书.pdf VIP
- 消化道出血有关试题附有答案.docx VIP
- 湘教版美术《家乡的古建筑》说课稿.doc
- 上海地区不同垂直骨面型成人临床冠中心高度的比较研究.pdf VIP
- 2023年 AMC 10B 数学竞赛(原卷+答案).doc VIP
- 世界贸易组织.ppt VIP
- 2023年 AMC 10A 数学竞赛(原卷+答案).doc
文档评论(0)