实验二 简单绘图软件的设计与实现
实验要求:
- 设计并使用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
如果觉得有用的话不妨点个关注 (≧∇≦)ノ