javascript - HTML/JS Canvas 在对象之间绘制线

标签 javascript css html canvas

我的元素需要帮助。我用 HTML5、JS 和 CSS3 制作 ERD 图生成器。我的元素中只错过了一个功能,即链接两个对象(矩形)。我试图实现这个功能,但它只能直接工作,但我想要 90 度 Angular 的线。

为了更好地解释,这是我现在拥有的:/image/fpfKb.png
这就是我想要的:/image/eCNKX.png

所以这是我想要的功能,但我无法弄清楚: 该函数必须采用 2 个对象。对象具有位置 X 和 Y、宽度和高度。函数计算连接这两个对象的最佳边以及该对象中的 90 度 Angular 。

因此,例如,它返回:
(起点)Point1:123,566
(换行点)Point2:223,766
(换行点)Point3 : 153,266
(终点)点4: 33,234

有任何想法吗?我只想要算法的建议。谢谢大家:)。

最佳答案

  1. 找出哪个对象的 left 值较小,哪个 top 值较小(如果您是这样定位它们的)
  2. 计算出两个对象的高度和宽度。
  3. 找出起点和终点:
    • 起点的 X 位于左侧对象的 left + width
    • 起点的 Y 位于左侧对象的 top + height/2
    • 终点 X 位于右侧对象的左侧
    • 终点的 Y 位于右侧对象的 top + height/2
  4. “换行点”位于起点的 Y 处以及起点 X 和终点 X 之间的 X 处。换行的第二个点位于终点的 Y 处,并且具有相同的 X 方向。
  5. 按照之前连接对象的方式连接 3 个点。

抱歉没有发布代码。如果您发布示例代码,我可以将其添加到答案中。

关于javascript - HTML/JS Canvas 在对象之间绘制线,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27666781/

相关文章:

javascript - 上传到虚拟主机时,html 图像未加载

javascript - jQuery:计算多个元素的子元素并计算

javascript - 在 svg 上居中一个元素

html - 如何创建第一列固定且下一列可水平滚动的 HTML 表格

javascript - 通过浏览器将json写入本地文件

php - php 中的列表页面重定向问题

javascript - Jquery $(this).closest ('form' );单击按钮后不工作

javascript - 将当前值与ajax成功回调的先前值进行比较

css - 多个背景 CSS3 按钮(+透明度)

javascript - 使用 ngSanatize 的 HTML5 音频和 Angular 双向绑定(bind)问题