我目前是一名学生,正在尝试设计一个 Visual C++ 应用程序,以允许我直观地插入一个有向图,以便使用该图的矩阵创建一个文本文件。此时,我创建了一个 onClick 事件来创建节点,并使用表单的 Paint 事件来绘制节点。我还插入了条件以避免节点重叠。
我目前正在创建节点之间的链接。我遇到的问题是连接两个节点的线穿过另一个节点。我认为编写一个算法来检测重叠并计算线需要弯曲多少以避免在这种情况下过于繁琐。
因此,我考虑创建一条可以由用户通过单击并向左或向右拖动来弯曲的线,但是我在查找有关如何执行此操作的任何教程时遇到了问题。因此,如果有人不得不在项目中引入这种拱形线,或者知道我可以在哪里找到有关这方面的一些信息,我将不胜感激。
提及:
- 请不要推荐任何花哨的图形库来执行此操作,因为我对为此程序安装 3rd 方的东西不感兴趣。我想插入代码的函数被命名为 form1_onPaint,所以我想严格遵守 C++ 标准库。
- 我知道我说过我有兴趣通过单击和拖动来拱起一条线,但是如果有人可以提出另一种可行的解决方案,例如检测 onPaint 事件中重叠的功能或任何其他可能用于解决此问题的功能,它会有很大帮助。