画一条线连接两个矩形

2024-03-29

我正在 Swing/AWT 中制作自己的类图应用程序,但我停在了这个功能上:

  • I want to draw a line between the Class rectangle that already selected and to the target Class rectangle, but line has a feature which is whenever i move one of the rectangles the line that join them get bend in a straight fashion following the moving rectangle , i hope the following picture demonstrate what i want to achieve: alt text

非常感谢一般指南或示例代码


我不懂 Java,但您可以遵循以下步骤:

  • 找到矩形每条线的中间(应该很容易,只需平均 x1+x2 和 y1+y2)
  • 使用毕达哥拉斯公式确定在上一步中获得的点上彼此最接近的边。
  • 开始从 xa,ya(您在上面步骤中得到的第一个点)开始绘制一条线,并沿着远离矩形的方向绘制它。你应该知道这个方向,因为你可以知道这个点所在的线段。
  • 对 xb,yb (第二个矩形上的点)执行相同的操作。如果线条方向相反,则应将它们绘制到 xa-xb 或 ya-yb 的中间(取决于您是水平绘制还是垂直绘制)。如果它们是垂直的(这是正确的词吗?),您应该将它们绘制到它们交叉的点,因此您绘制从 xa,ya 到 xa,yb 或 xa,ya 到 xb, ya 的线,具体取决于您是否绘制水平或垂直线。
  • 应该进行一些额外的检查来查看矩形是否重叠。例如,您不应该沿同一方向绘制线条。在您无法确定如何绘制这些直线的情况下,也许您只在两点之间绘制一条对角线就足够了。

对于实现,您可以构建一个线类,该线类使用观察者模式来侦听它遵循的两个矩形,因此只要其中一个矩形移动或调整大小,它就可以自我更新。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

画一条线连接两个矩形 的相关文章

随机推荐