请问要如何透过 Viewer 的 API 来产生剖切面吗?
像这截图这样:
可以的,你可以透过 viewer.setCutPlanes() 这个函数来设置剖切面,它接受的是 THREE.Vector4 的数组 (array),也就是剖切面的数组。 每个 THREE.Vector4 都代表一个高等数学的面方程 ax + by + cz + d = 0 ,这个面方程的法向为 (a,b,c) 且与距离坐标原点 d 单位。此外, Forge Viewer 还以 THREE.Vector4 的 (x, y, z) 来表示面的法向 (a, b, c),w 代表与原点的距离 d。调用示例如下:
viewer.setCutPlanes()
THREE.Vector4
ax + by + cz + d = 0
(a,b,c)
d
(x, y, z)
(a, b, c)
w
var cutplanes = [ new THREE.Vector4( 0, 0, -1, -17 ), new THREE.Vector4( 0, 0, 1, 0 ), ]; veiwer.setCutPlanes( cutplanes );
结果截图:
如果要取消剖切的话,只要再调用一次 viewer.setCutPlanes() 且不传入任何参数即可,取消后房子就回复原状了:
康工您好,我是小赵,在上海就同问过您的名气,现在想请教您,模型剖切后是否可以默认选中显示的部分(触发that.viewer.getSelection()事件)。我对于forge只是入门,这个问题也困扰我一段时间了。
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
暂无简介
文章 0 评论 0
接受
发布评论
评论(2)
可以的,你可以透过
viewer.setCutPlanes()
这个函数来设置剖切面,它接受的是THREE.Vector4
的数组 (array),也就是剖切面的数组。 每个THREE.Vector4
都代表一个高等数学的面方程ax + by + cz + d = 0
,这个面方程的法向为(a,b,c)
且与距离坐标原点d
单位。此外, Forge Viewer 还以THREE.Vector4
的(x, y, z)
来表示面的法向(a, b, c)
,w
代表与原点的距离d
。调用示例如下:结果截图:
如果要取消剖切的话,只要再调用一次
viewer.setCutPlanes()
且不传入任何参数即可,取消后房子就回复原状了:康工您好,我是小赵,在上海就同问过您的名气,现在想请教您,模型剖切后是否可以默认选中显示的部分(触发that.viewer.getSelection()事件)。我对于forge只是入门,这个问题也困扰我一段时间了。