gpt4 book ai didi

java - 画一条线连接两个矩形

转载 作者:塔克拉玛干 更新时间:2023-11-01 22:34:29 26 4
gpt4 key购买 nike

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

  • 我想在已经选择的类矩形和目标类矩形之间画一条线,但是线有一个特点,就是每当我移动其中一个矩形时,连接它们的线就会以直线方式弯曲移动矩形,我希望下图展示我想要实现的目标: alt text

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

最佳答案

我不懂 Java,但您可以按照以下步骤操作:

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

对于实现,您可以构建一个线类,它使用观察者模式来监听它跟随的两个矩形,因此它可以在其中一个移动或调整大小时更新自身。

关于java - 画一条线连接两个矩形,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4647454/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com