如何在 jsc3d 模型中添加热点?

How do I add hot spots in a jsc3d model?

我使用 jsc3d 在我的网页中加载了一个 3D 模型。有没有办法在我的模型上放置一个热点(可点击区域),以便在点击它时我可以放大并将模型旋转到特定的集合或坐标?

我认为用于网格选择的 "hotspot" 已经内置。 假设您已经正确初始化了一个查看器:

var viewer;
/* Set viewer Options */
...
viewer.init();
...

设置回调函数:

viewer.onmousedown = onViewerMouseDown;

那么你需要这样的东西:

function onViewerMouseDown(x, y, button, depth, mesh) {     
    if (button == 0/*left button down*/ && mesh != null) {
        var meshName = mesh.name;
        var pivot = mesh.aabb.center();
        /* do something with the selected mesh */
        console.log('Mesh center: ' + JSON.stringify(pivot));
    }
}

如果您有多个网格,您应该 rotate/translate 自己动手,例如在 jsc3d 原型中实现一个网格旋转矩阵。

更多信息:

http://jsc3d.googlecode.com/svn/trunk/jsc3d/docs/symbols/JSC3D.Viewer.html#onmousedown