课 程 实 验 报 告 课 程 名 称 计 算 机 图 形 学 班 级 实 验 日 期 姓 名 学 号 实 验 成 绩 实 验 名 称 直 线 中 点 Bresenham 算 法 实 验 目 的 及 要 求 斜 率 0≤k≤1 直 线 的 中 点 Bresenham 算 法 。 任 意 斜 率 直 线 段 绘 制 算 法 。 颜 色 类 的 定 义 与 调 用 方 法 。 直 线 类 的 定 义 与 调 用 方 法 。 鼠 标 按 键 消 息 映 射 方 法 。 实 验 内 容 1、案例描述 在屏幕客户区内 按 下鼠 标 左键 赞扬直 线 的 起点 ,移动鼠 标 指针到直 线终点 上,弹起鼠 标 左键 绘 制 任 意 斜 率 的 直 线 段 。 2、功能说明 (1)设计 CRGB 类 其成 员变量为 double 型的 红绿蓝分量 red,green和 blue,将 red,green 和 blue 分量分别规范到[0,1]区间。 (2)设计 Cline 直 线 类 ,其成 员变量为直 线 段 的 起点 坐标 P0 和终点坐标 P1,成 员函数为 MoveTo()和 LineTo()函数。 (3)Cline 类 的 LineTo()函数使用 中 点 Bresenham 算 法 绘 制 任 意 斜率 的 直 线 段 ,包括 k=±∞,k>1,错 误 !未 找 到 引 用 源 。0≤ᵅ≤1, -1≤ᵅ<0 和 k<-1这 5 种情况。 1 / 11 ( 4) 自 定 义 屏 幕 二 维 坐 标 系 , 原 点 位 于 客 户 区 中 心 ,x 轴 水 平 向 右 为正 , y 轴 垂 直 向 上 为 正 。 直 线 段 的 起 点 坐 标 和 终 点 坐 标 相 对 于 屏 幕 客 户 区 中心 定 义 。 算 法 描 述 及 实 验 1、案例分析 MFC 提供的CDC 类的 成员函数 MoveTo()和 LineTo()函数用于 绘制傻任意斜率的 直 线 段 , 直 线 段 的 颜色由所选用的 画笔指定 。 MoveTo()函数移动当前点 到参数(x,y)所指定 的 点 , 不画线 ;LineTo()函数从当前点 画一直 线 段 到参数(x,y)所指定 的 点 , 但不包括(x,y)。 本案例通过定 义 Cline 类来模拟 CDC 类绘制任意斜的 直 线 段 , 采用直线 中 点 Bresenham 算 法 。 2、算 法 设计 对 于 0≤ᵅ≤1 的 直 线 段 , 中 点 Bresenham 算 法 如下: ( 1) 使用鼠标 选择起 点 坐 标p0(x0,y0)和 终 点 坐 标p1(x1,y...