计算机图形学--绘制直线

计 算 机 图 形 学

专 业:

班 级:

学 号:姓 名:实 验 报 告 信息与计算科学 1002班 10080602** *****

1. 实验目的

熟悉CDC 类的MoveTo ()和LineTo ()直线段绘制函数。

熟悉斜率-1

2. 问题分析

通过Cline 类来模拟CDC 类完成任意斜率的直线段绘制,同样提供MoveTo ()和 LineTo ()成员函数。

3. 实验步骤

(1)规定颜色的处理, 定义了CRGB 类.

(2)设计CLine 直线类.

(3)在直线类中创建MoveTo()和LineTo()成员函数.

4. 部分程序代码

#Line.h

class CLine

{

public:

CLine();

virtual ~CLine();

void MoveTo(double,double);

void LineTo(CDC* pDC,double,double,double);

public:

CPoint m_p1;

CPoint m_p2;

};

#Line.cpp

CLine::CLine()

{

}

CLine::~CLine()

{

}

void CLine::MoveTo(double x,double y)

{

m_p1=CPoint(x,y);

}

void CLine::LineTo(CDC* pDC,double x,double y,double k)

{

m_p2=CPoint(x,y);

CPoint p,t;

pDC->SetMapMode(MM_LOMETRIC);

pDC->SetViewportOrg(200,200);

double d;

if(k>=-1.0&&k

{

if(m_p1.x >m_p2.x )

{

t=m_p1;

m_p1=m_p2;

m_p2=t;

}

d=-0.5-k;

for(p=m_p1;p.x

{

pDC->SetPixel (p.x ,p.y ,RGB(0,0,255));

if(d>0)

{

p.y--;

d-=1+k;

}

else

{

d-=k;

}

}

}

}

void CTEXTView::OnDraw(CDC* pDC)

{

CTEXTDoc* pDoc = GetDocument();

ASSERT_VALID(pDoc);

CLine cline;

cline.MoveTo (-200,300);

cline.LineTo (pDC,200,-300,-0.3);

}

5. 程序效果图

6. 实验总结

本实验实现了一个类似于CDC 类的MoveTo ()函数和LineTo ()函数,用于绘制任意斜率的直线段,这次只是绘制固定斜率的直线段,但还是出现了很多问题,经过与同学的讨论解决了问题。

计 算 机 图 形 学

专 业:

班 级:

学 号:姓 名:实 验 报 告 信息与计算科学 1002班 10080602** *****

1. 实验目的

熟悉CDC 类的MoveTo ()和LineTo ()直线段绘制函数。

熟悉斜率-1

2. 问题分析

通过Cline 类来模拟CDC 类完成任意斜率的直线段绘制,同样提供MoveTo ()和 LineTo ()成员函数。

3. 实验步骤

(1)规定颜色的处理, 定义了CRGB 类.

(2)设计CLine 直线类.

(3)在直线类中创建MoveTo()和LineTo()成员函数.

4. 部分程序代码

#Line.h

class CLine

{

public:

CLine();

virtual ~CLine();

void MoveTo(double,double);

void LineTo(CDC* pDC,double,double,double);

public:

CPoint m_p1;

CPoint m_p2;

};

#Line.cpp

CLine::CLine()

{

}

CLine::~CLine()

{

}

void CLine::MoveTo(double x,double y)

{

m_p1=CPoint(x,y);

}

void CLine::LineTo(CDC* pDC,double x,double y,double k)

{

m_p2=CPoint(x,y);

CPoint p,t;

pDC->SetMapMode(MM_LOMETRIC);

pDC->SetViewportOrg(200,200);

double d;

if(k>=-1.0&&k

{

if(m_p1.x >m_p2.x )

{

t=m_p1;

m_p1=m_p2;

m_p2=t;

}

d=-0.5-k;

for(p=m_p1;p.x

{

pDC->SetPixel (p.x ,p.y ,RGB(0,0,255));

if(d>0)

{

p.y--;

d-=1+k;

}

else

{

d-=k;

}

}

}

}

void CTEXTView::OnDraw(CDC* pDC)

{

CTEXTDoc* pDoc = GetDocument();

ASSERT_VALID(pDoc);

CLine cline;

cline.MoveTo (-200,300);

cline.LineTo (pDC,200,-300,-0.3);

}

5. 程序效果图

6. 实验总结

本实验实现了一个类似于CDC 类的MoveTo ()函数和LineTo ()函数,用于绘制任意斜率的直线段,这次只是绘制固定斜率的直线段,但还是出现了很多问题,经过与同学的讨论解决了问题。


相关文章

  • 初中信息技术-人民教育出版社_八年级下册-教案
  • 授课时间:2015-3-1 课时:1 第一周 课 题: 第一课 几何画板的初步认识 教学目标: 1.了解几何画板界面 2.能用几何画板画一些基本图形 3.学会将自制的画板文件存盘 教学重点: 1.用几何画板画基本图形 2.要求学生注意状态栏 ...查看


  • 绘制任意斜率的直线
  • 淮海工学院计算机工程学院 实验报告书 课程名: 计算机图形学 题 目: 绘制任意斜率的直线 班 级: 学 号: 2012122827 姓 名: 一.实验目的或要求 1. 掌握任意斜率直线的绘制算法. 2. 掌握直线中点Bresenham 算 ...查看


  • 画图软件教案-工具举例
  • 第1课 初识画笔 教学目标: 认识"画图板"窗口. 教学时间:1课时 教学过程: 同学们,喜欢画画吗?在我们的电脑中有一个强大的工具软件叫"画图板",在这个软件里面有用不完的"颜料" ...查看


  • 电脑入门教程第9课
  • 本文由武安六中刘贡献 ppt文档可能在WAP端浏览体验不佳.建议您优先选择TXT,或下载源文件到本机查看. 电脑入门教程 第9章 Windows XP的常用附件 本章导读 学习目标 本章要点 上机练习 习 题 电脑基础实例上机系列丛书 清华 ...查看


  • 天正建筑CAD简介
  • 序 天正建筑CAD简介 1.绘图要素的变化: AutoCAD的绘图元素:点.线.面等几何元素. 天正CAD的绘图元素:墙.门.窗.楼梯等建筑类元素. 2.尽量保证天正作图的完整性: (1)最大呈度的使用天正作图. (2)小地方使用AutoC ...查看


  • 小学信息技术三年级上册教案全册
  • 信息技术教案 (三年级上册) 2012年9月 中小学教师职业道德规范 一.爱国守法.热爱祖国,热爱人民,拥护中国共产党的领导,拥护社会主义.全面贯彻国家教育方针,自觉遵守<教师法>等法律法规,依法履行教师职责和义务.不得有违背党 ...查看


  • 开题报告模板
  • 一.题目来源 科研真题(压力预测软件的研制). 说明:题目来源包括:科研真题.生产/社会实际.实验室建设.其它.若题目来源于教师的科研真 题,请在其后用括号说明科研项目名称:若来源于生产/社会实际,请其后用括号说明题目来源单位: 若为实验室 ...查看


  • 1.建筑工程师CAD
  • 北京英科宇科技开发中心是集CAD软件开发.应用.研究为一体的专业软件公司,北京市科委认定的软件企业,AutoDesk开发商网络(ADN)成员.公司已开发出建筑.电气.机械.化工四大领域的软件产品,并为多家知名企业提供了专业软件开发服务. & ...查看


  • 机械制图基本知识和技巧
  • 1 常用绘图工具.用品及仪器 ―工欲善其事,必先利其器|.正确地选择和使用绘图工具和用品是学好<制图>课程的前提.常用的绘图工具和用品共有10种,现一一介绍给大家 一.常用绘图工具 1.图板: 图板是用来固定图纸的矩形木板.其要 ...查看


热门内容