MFC绘制无向图

通过MFC界面实现简单的无向图功能:
用鼠标左键点击,按顺序生成一幅无向图,无线图的节点用图标icon显示,节点之间用直线连接,点击到已有的点视为上一个点和已有的点连通(判断点到已有点采用5个像素为阈值)通过Serialize函数将无向图的数据存储到文件里,下一次能够打开该文件原样显示。

设计思想

采用C++语言,MFC实现无向图绘制,需要先考虑鼠标对顶点和边的操作,可以采用鼠标左键创建顶点,鼠标右键选择其中一个顶点到另一个顶点,创建两个顶点之间的边。数据结构设计一个顶点列表(vertex list)和一个边列表(edge list),顶点列表包含顶点标号,X,Y坐标等信息,边列表包含两顶点之间的边信息,无向图数据的存储就是将这个顶点列表和边列表以文本形式存储到文件,对无向图数据的加载就是重新解析之前存储的文件数据,对顶点和边进行重绘。

程序界面

Python画无向图 画出无向图_数据结构

录屏展现

绘制无向图

Python画无向图 画出无向图_MFC_02

无向图的存储和加载

Python画无向图 画出无向图_C++_03

源码下载

链接:https://pan.baidu.com/s/1UcrzkYf7YWYpAfzBO9qNBQ?pwd=1111 提取码:1111