在 javascript 中围绕 3D 轴旋转表面

Rotating a surface around an axis in 3D in javascript

我需要实现一些东西,但我不确定要使用什么(vanilla js 与库)。

我希望我的用户在其浏览器中可视化 3d 模型建筑。建模是在建模工具中完成的,然后导出为一系列图像以执行 360° 度的操作。我正在使用 this code 来做 360° 的事情,效果很好。

在建模工具中,用于拍摄模型(假设它是一栋房子)的相机位于几米高的地方,并围绕房子旋转一圈。我可以获得那些参数(相机相对于模型中心的高度和距离)。

现在我还想要 "hot spots" 这个 360 javascruot 图像微调器:用户应该能够点击某些表面(厨房、餐厅、房间 1、房间 2 等)并在弹出窗口中获取一些数据. I've already done this in 2D with SVG 很简单,但不知道如何在这种 3D 中做同样的事情。我在想我可以使用像 three.js 这样的工具来完成这项工作,但不知道从哪里开始 - 我的数学课很远。

理想情况下我想做的事情:

有人知道我该怎么做以及我应该使用什么吗?

谢谢。

Threejs 不用问你数学就可以轻松完成旋转+可点击区域。您只需要使旋转与图像滑块的周期相同。

  • SVGRenderer 可能适合您的项目,
  • 但是考虑到密集的 CPU 计算你链接的滑块询问,WebGLRenderer 可能是最好的解决方案,因为它使用 GPU 进行渲染,几乎没有编程差异(在 threejs 中).
  • 如果您使用 WebGLRenderer 更直观的是将所有内容都包含在 threejs 中。您只需加载一个纹理和几何图形,而不是一大组图像(您将获得几秒钟的加载时间),并且由于 CPU 计算减少了两倍,结果将变得更加平滑。