SWJTU 西南交通大学 计算机图形学实验2

实验二 简单绘图软件的设计与实现

实验要求:

  1. 设计并使用C++ GDI库实现一个简单的图形绘制工具软件,软件主要包括如下的基本功能:

(1)用户可通过点击菜单项或者工具条按钮实现基本图元的绘制。基本图元包括:直线,圆,矩形,曲线,多义线(多条直线构成的折线段,作为一个整体,当选择其中一段直线时可看成是选择了整个折线段)等。基本图元的参数通过鼠标输入。比如,当用户点击“直线绘制”按钮或菜单项时,可通过在屏幕中的图形绘制区第一次点击鼠标左键确定直线的起点,然后移动鼠标,在另一个位置点击鼠标左键确定直线终点,从而绘制出一条直线。其他图元的绘制方式请参照其他软件自行设计。

(2)通过鼠标选择绘制的图元。选择命令通过菜单项或者工具条按钮确定。执行“选择”命令时,当鼠标落在某个图元上时改变鼠标的形状。

(3)完成基本的图形计算。主要包括:1)求交:求直线和直线,直线和圆,圆和圆之间的交点,并给出交点的坐标。2)绘制垂线:绘制出屏幕上某点到某条直线的垂线。3)求圆心:当选择某个圆时给出其圆心的位置及坐标。

(4)以文件的形式保存绘制的图形,并可打开已保存的文件,正常显示出保存的图形。

大部分功能都实现了, 剩下的不想写了。功能做的比较简陋   >﹏<

(不过用来应付写word应该够用了吧(也许))

从周四晚上开始做,  做到周六晚上, 合计两天多一点, 写了700+行代码。

使用C++ Win32库实现

main.exe已经放在文件夹中。

如果你的gcc编译器版本在11及以上,那么可以直接运行main.exe(注意要全屏使用)

如果是低版本或者是没有的话就会报错​​​​​​​:

main.exe-系统错误
由于找不到libgcc_s_seh-1.dll,无法继续执行代码。重新安装程序可能
会解决此问题。

所以就得下载更高版本的mingw(11版本及以上)

如果你想编译可以使用以下命令:

make

文件夹里有makefile, 所有可以直接用make命令, 前提是得有mingw, 如果没有建议去官网安装

如果有mingw, 但是报错:

无法将“make”项识别为 cmdlet、函数、脚本文件或可运行程序的名称

记得检查是否将mingw加入环境变量 , 还有要将mingw64/bin目录下的mingw32-make.exe重命名为make.exe, 然后应该就没问题了

如果还是报错, 可以试试

rm *.o    // 或者del *.o
make

编译也可以使用以下命令:

g++ -o main.exe 请把所有的.cpp文件放在这里 -mwindows

未实现的功能:通过鼠标选择绘制的图元; 绘制垂线; 求圆心; 以文件的形式保存绘制的图形;

按照现在的代码结构, 求圆心和保存图形应该是很简单的; 绘制垂线和通过鼠标选择绘制的图元应该也不难。

说不定以后哪天心情好, 继续更新一下, 所以写一下可以添加的功能:

1.添加一个清屏功能

2.选择画笔颜色

3.橡皮擦, 擦除已有的图案

4.鼠标悬停在交点附近时显示交点坐标, 而不是现在的点击, 并且鼠标移走后还能取消显示

代码详见:https://download.youkuaiyun.com/download/qq_73781710/89880947

github也有代码哦:https://github.com/Ni-Sun/SWJTU-computer-graphics

如果觉得有用的话不妨点个关注 (≧∇≦)ノ

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

你 的 太 阳

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值