加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

java – 绘制连接两个矩形的线

发布时间:2020-12-15 08:37:36 所属栏目:Java 来源:网络整理
导读:我在Swing / AWT中创建自己的类图应用程序,但我停止了这个功能: 我想在已经选择的Class矩形和目标Class矩形之间绘制一条线,但是line有一个特征,就是当我移动其中一个矩形时,连接它们的线在移动的矩形之后以直线方式弯曲,我希望下面的图片展示了我想要实现的
我在Swing / AWT中创建自己的类图应用程序,但我停止了这个功能:

>我想在已经选择的Class矩形和目标Class矩形之间绘制一条线,但是line有一个特征,就是当我移动其中一个矩形时,连接它们的线在移动的矩形之后以直线方式弯曲,我希望下面的图片展示了我想要实现的目标:

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

解决方法

我不懂 Java,但你可以遵循的步骤如下:

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

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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读