Contents

西南交通大学-计算机图形学实验2-2025年

Note
此笔记针对西南交通大学2025-2026学年上半学期开设的计图实验课
Success
已更新任务2内容
Failure
已知绘图区窗口大小改变时图像会消失,此问题未找到解决方法,如果有读者解决欢迎在评论区提出!



https://img.shields.io/github/contributors/septemus/swjtu-computergraphics-exp2.svg?style=for-the-badge https://img.shields.io/github/forks/septemus/swjtu-computergraphics-exp2.svg?style=for-the-badge https://img.shields.io/github/stars/septemus/swjtu-computergraphics-exp2.svg?style=for-the-badge https://img.shields.io/github/issues/septemus/swjtu-computergraphics-exp2.svg?style=for-the-badge https://img.shields.io/github/license/septemus/swjtu-computergraphics-exp2.svg?style=for-the-badge


Logo

西南交通大学-计算机图形学实验2-2025年

实验环境与实验程序框架搭建
访问博客获得更多信息

View Demo · Report Bug · Request Feature

实验要求

使用实验一的程序项目,根据任务设置程序界面,两周课程依次完成如下任务:

  1. 任务(1)(第 6 周)
    • 实现任意斜率直线段生成算法(DDA 算法、中点算法、Bresenham 算法),每种算法完成任意斜率直线段的绘制。选择 12~24 边的一种正多边形两两顶点相连形成线段进行每种算法测试。(必做)
    • 实现中点画圆算法(必做),以同心圆簇(若干同心圆)与不同位置的圆进行测试;
    • Bresenham 画圆算法、圆弧绘制算法,以同心圆簇(若干同心圆)、0-90 度、0-180 度、0-270 度、0-360 度等范围内多个圆弧进行验证(选做)。
  2. 任务(2)(第 7 周)
    • 实现扫描线多边形填充算法(有效边表多边形填充算法)并至少以多个凸、凹多边形进行验证(包括有水平边的多边形);(必做)
    • 实现种子填充算法(四联通的边界表示、内点表示),并使用自己的画圆算法绘制边界边界表示的点阵区域,再作为内点表示的区域进行填充验证。(选做)

(back to top)

实验工具

  • https://img.shields.io/badge/c++-000000?style=for-the-badge&logo=cplusplus&logoColor=white
  • https://img.shields.io/badge/opengl-000000?style=for-the-badge&logo=opengl&logoColor=white
  • https://img.shields.io/badge/Git-000000?style=for-the-badge&logo=git&logoColor=white

(back to top)

实验效果

  1. 任务(1) /images/cg_exp2_res.png
  2. 任务(2) /images/cg/exp2/res2.png

(back to top)

使用教程

任务(1)

打开Visual Studio:

/images/step1.png

选择克隆存储库

/images/step2.png

粘贴github源代码仓库地址:https://github.com/Septemus/swjtu-computergraphics-exp2

/images/cg/exp2/step3.png

设置好路径后点击克隆

/images/step4.png

点击启动按钮

/images/step5.png

启动成功

/images/cg/exp2/step6.png

把左侧栏拉宽一点

/images/cg/exp2/step7.png

点击正多边形绘制按钮弹出对话框

/images/cg/exp2/step8.png

选择算法、正多边形边数、坐标

/images/cg/exp2/step9.png

点击确定,正多边形成功生成

/images/cg/exp2/step10.png

点击圆绘制按钮弹出对话框

/images/cg/exp2/step11.png

选择圆心坐标,半径,弧度(0-360)

/images/cg/exp2/step12.png

点击确定,圆弧成功生成

/images/cg/exp2/step13.png

任务(2)

使用最新的代码,可以看到左上工具栏出现新选项

/images/cg/exp2/step2_1.png

  1. 点击有效边扫描线法填充多边形按钮一次,进入选择顶点状态
  2. 在绘图区鼠标点击任意位置,该位置将成为多边形顶点位置
  3. 再点击一次有效边扫描线法填充多边形按钮,填充好的多边形出现

开发路线

  • 在Windows 11,Visual Studio 2022上创建MFC APP实现
  • 在MacOS,QT6上创建QT APP实现

查看 open issues 获取功能和问题列表

(back to top)

开源贡献

正是贡献让开源社区成为了学习、启发和创造的绝佳场所。我们非常感谢您的任何贡献。

如果您有改进建议,请分叉仓库并创建拉取请求。您也可以简单地打开一个带有标签“增强”的问题。

别忘了给项目点个星!再次感谢!

  1. 分叉项目
  2. 创建您的功能分支(git checkout -b feature/AmazingFeature
  3. 提交您的更改(git commit -m 'Add some AmazingFeature'
  4. 推送到分支(git push origin feature/AmazingFeature
  5. 打开拉取请求

贡献者:

contrib.rocks image

(back to top)

License

Distributed under the Unlicense License. See LICENSE.txt for more information.

(back to top)

联系

博客留言 - 西南交通大学-计算机图形学实验2-2025年 - musketeerdt@gmail.com

项目源代码仓库: https://github.com/Septemus/swjtu-computergraphics-exp2

(back to top)