Contents

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

Note
此笔记针对西南交通大学2025-2026学年上半学期开设的计图实验课
Warning
暂未更新任务2内容

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


Logo

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

二维图形变换与裁剪实验
访问博客获得更多信息

View Demo · Report Bug · Request Feature

实验要求

任务1(第8周):二维图形程交互绘制(参考资料:计算机图形学实验参考02.pdf

在实验二程序框架基础上,根据提供的实验参考资料,逐步修改图形程序框架,实现自定义可绘制图形对象,场景管理功能,参考线段类的实现,添加工具面板按钮,完成以下图形类构建及交互绘制加入场景,交互绘制要能支持橡皮线功能并使用实验二中直线段绘制算法进行测试):

  • 学号单号:折线(鼠标左键单击指定第一点,第二点…右键点击作为最后一点结束),类似GL_LINE_STRIP功能
  • 学号双号:闭合线(鼠标左键单击指定第一点,第二点…右键点击最后一点结束),类似GL_LINE_LOOP功能。

任务2(第9周)、二维图形几何变换(参考资料:计算机图形学实验参考03.pdf)添加工具面板按钮,实现二维图形的鼠标交互拾取,使用键盘及鼠标控制图形对象的几何变换。

  1. 基本几何变换包括:平移、旋转、缩放;按自定义默认参数, 通过派生自定义的事件处理类实现;
  2. 复合几何变换假定参考基准点为图形对象中心,绕基准点旋转、基于该基准点缩放(设计交互命令类支持鼠标交互获取角度、缩放比例)。运行程序目录下要写一个操作说明文档readme.txt

(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/exp3/result.png
  2. 任务(2)

(back to top)

使用教程

打开Visual Studio:

/images/step1.png

选择克隆存储库

/images/step2.png

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

/images/cg/exp3/step3.png

设置好路径后点击克隆

/images/step4.png

点击启动按钮

/images/step5.png

启动成功

/images/cg/exp3/step6.png

任务(1)

点击工具栏的直线类,可以看到按钮

/images/cg/exp3/step7.png

  • 点击直线段,然后在绘图区用鼠标左键任意点击两个位置,出现一条新线段,按ESC退出 /images/cg/exp3/step8.png
  • 点击折线(学号单号),然后在绘图区用鼠标左键任意点击多个位置,将会依次连接成折线,按鼠标右键点击的位置将成为折线最后一个点的位置,按ESC退出 /images/cg/exp3/step9.png
  • 点击闭合线(学号双号),然后在绘图区用鼠标左键任意点击多个位置,将会依次连接成折线,按鼠标右键点击的位置将成为折线最后一个点的位置,并且和第一个位置相连形成闭合线,按ESC退出 /images/cg/exp3/step10.png

开发路线

  • 在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)

联系

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

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

(back to top)