如何使用 Threejs 和 Fabricjs 管理画布

问题描述 投票:0回答:1

我的应用程序使用 Threejs 来管理画布。例如,放大/缩小和平移。 我还添加了fabricjs进行注释。
该应用程序的工作方式是,它有一个用于 Threejs 的“Renderer”元素,以及一个用于 Fabricjs 的“Canvas”元素。
单击 Renderer 元素会触发 Canvas 元素上的事件,fabricjs 会响应该事件。
此处显示了该问题的示例。

在添加、移动形状和调整形状大小时(例如,当按钮显示“进入绘图模式”时),这在“非自由绘制”模式下效果很好。长方形或圆形。 但这在“自由绘图”模式下效果不佳(当按钮显示“取消绘图模式”时)。
在 freedraw 中,绘制路径时,路径在鼠标按下时在画布中创建,在绘制鼠标时更新,并在鼠标按下事件时完成。
当路径完成后,它会显示在渲染器元素中 - 很好。
但是当鼠标按下并拖动时更新路径时,更新后的路径仅显示在 Canvas 元素中,而不显示在 Renderer 元素中。

在更新路径时,在最终确定之前,需要做什么才能在渲染器元素上显示更新的路径?
谢谢

See code in the link https://jsfiddle.net/avnerm/Lk2hmq1o/12/

附注链接中的渲染器可能显示为黑色。可能需要“踢”演示,以在渲染器中显示立方体,例如

  • 切换鼠标滚轮
  • 切换调试器 (F12)
three.js fabricjs
1个回答
0
投票

解决方案是绘制 upperCanvas 参见这里 该解决方案的示例代码是here

See code in the link https://jsfiddle.net/avnerm/Lk2hmq1o/20/

© www.soinside.com 2019 - 2024. All rights reserved.