画一条连接两个矩形的线 [英] Drawing a line connecting two rectangles

查看:79
本文介绍了画一条连接两个矩形的线的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

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

  • 我想在已经选择的Class矩形和目标Class矩形之间画一条线,但是LINE有一个功能,那就是每当我移动其中一个矩形时,连接它们的线就会随着移动的矩形直线弯曲,我希望下面的图片演示我想要实现的目标:

非常感谢通用指南或示例代码

推荐答案

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

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

对于实现,您可以构建一个Line类,该类使用观察器模式侦听它跟随的两个矩形,这样只要其中一个矩形移动或调整大小,它就可以自我更新。

这篇关于画一条连接两个矩形的线的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆