Drawing a line connecting two rectangles(画一条连接两个矩形的线)
本文介绍了画一条连接两个矩形的线的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我正在用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类,该类使用观察器模式侦听它跟随的两个矩形,这样只要其中一个矩形移动或调整大小,它就可以自我更新。
这篇关于画一条连接两个矩形的线的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
沃梦达教程
本文标题为:画一条连接两个矩形的线
基础教程推荐
猜你喜欢
- 如何强制对超级方法进行多态调用? 2022-01-01
- 如何使用 Stream 在集合中拆分奇数和偶数以及两者的总和 2022-01-01
- 在螺旋中写一个字符串 2022-01-01
- Spring Boot Freemarker从2.2.0升级失败 2022-01-01
- 由于对所需库 rt.jar 的限制,对类的访问限制? 2022-01-01
- 首次使用 Hadoop,MapReduce Job 不运行 Reduce Phase 2022-01-01
- 如何使用 Eclipse 检查调试符号状态? 2022-01-01
- Java 中保存最后 N 个元素的大小受限队列 2022-01-01
- 如何在不安装整个 WTP 包的情况下将 Tomcat 8 添加到 Eclipse Kepler 2022-01-01
- 如何对 HashSet 进行排序? 2022-01-01