问题标签 [trackball]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
1092 浏览

rotation - 使用 OBJLoader 和 Three.js 添加 360 度水平旋转

所以我通过 OBJLoader.js 加载了一个对象,并希望它能够围绕其中心水平旋转 360 度。我一直在查看 TrackballControls 和Canvas Cube 示例,但我似乎无法在不遇到几种错误的情况下将它们一起实现。大多数时候它会返回关于 addEventListener 的错误。我已经检查过我的三个.js 和扩展名的版本是否正确。希望你有什么建议。

0 投票
1 回答
1566 浏览

three.js - 使用轨迹球控件时相机的 matrixworldinverse 不会更新有什么原因吗?

我正在使用threejs 和轨迹球相机查看场景。我尝试从相机获取视图矩阵,但它的 matrixworldinverse 没有更新。我确实在我的渲染函数中调用了 updateMatrixWorld。矩阵世界正在更新,而不是相反。任何想法为什么?

0 投票
1 回答
884 浏览

three.js - 是否可以使用 TrackballControls 旋转对象?

是否可以使用 TrackballControls 旋转对象而不是相机? http://threejs.org/examples/js/controls/TrackballControls.js

0 投票
3 回答
4512 浏览

three.js - 启用轨迹球控件时,three.js mousedown 不起作用

轨迹球与 onMouseClick 和 onMouseUp 事件侦听器一起在我的 three.js 程序中运行良好。我使用以下行启用轨迹球:-

但是 onMouseDown 事件监听器不起作用。

如果我禁用轨迹球(通过注释掉上面显示的代码行)并禁用任何其他相关代码,那么 onMouseDown 工作正常。

有什么方法可以同时使用 onMouseDown 和 Trackball 控件吗?

原因是当 mousedown 事件发生时,我可以检测到它在屏幕上发生的位置,然后切换控件变量,以便 Trackball 控制适当的 scene_camera_container。

示例原型运行在:- http://www.zen226082.zen.co.uk/TRI_VP.html(最好在 Chrome 或 Opera 中,在 Firefox 中对齐问题)。

0 投票
1 回答
568 浏览

three.js - 轨迹球控制中的“平移”到底是什么意思

three.js 中轨迹球控制中的“Pan”一词究竟是什么意思?

这里的“panspeed”是什么?

0 投票
1 回答
275 浏览

opengl - Trackball issue with Raypicking

I'm trying to develop a 3D raypicking in my OpenGL scene.

I have a working OBJ loader with a trackball.

Here trackball's functions:

If I cast a ray (CTRL + Left_click) at the beginning It works with correct 3D far_point and near_point If I rotate the object (use Trackball), the ray doesn't use real eye/far points and I can't figure out why. I've tried with GluLookAt instead of glRotatef, but I can't figure out how to move camera with mouse like this trackball does.

0 投票
1 回答
1916 浏览

javascript - 除非我单击并轻轻拖动,否则使用 Three.js 的 mousedown 事件不起作用

出于某种原因,在下面的代码中,当我简单地单击一个对象时,“intersects”变量不包含 onDocumentMouseDown 事件处理程序中的任何项目。为了让它检测到点击的对象,我必须点击并轻轻拖动鼠标,然后它才能拾取点击的项目。如果这很重要,我也在使用轨迹球控制。我在这里有一个 jsfiddle 示例:http: //jsfiddle.net/marktreece/xvQ3f/

在 jsfiddle 示例中,单击多维数据集并注意颜色没有按预期更改。现在单击立方体,在释放鼠标按钮之前,稍微移动它,颜色就会改变。我怎样才能做到这一点,只需单击对象就足够了?

这是我的 mousedown 事件处理程序:

0 投票
2 回答
1077 浏览

opengl - 使用 FLTK 在 opengl 中实现轨迹球旋转:如何“记住”连续旋转

我正在开发一个 FLTK 项目(我第一次尝试 GUI 和 opengl:请多多包涵!)并且有一个 Fl_Gl_Window,它根据其他一些小部件显示各种内容。选项之一是以 3D 显示屏幕内容并让用户能够使用鼠标以 3D 旋转它。原则上一切都很好(我在窗口处理程序中使用 Fl::event 函数来实现鼠标/窗口位置,并简单地更新了按给定顺序应用的 x、y 和 z 旋转角度),但是我正在做的方式这是不直观的(因为非通勤轮换等)所以我正在实现一个轨迹球(类似于这里的那个:http ://www.csee.umbc.edu/~squire/download/trackball.c)。我了解这一切是如何工作的,并且可以通过第一次鼠标拖动使其沿正确的轴按预期旋转。但...

问题是,据我所知,为了正常工作(即多次鼠标拖动),必须维护模型视图矩阵,以便相对于当前显示的方向旋转对象,以便应用 glRotatef每次鼠标拖动它。现在,我用 FLTK 学习了一些基本的 openGL 的方法是有一个 draw() 函数,每当有任何变化时都会调用它,但这(据我在 FLTK 和对我来说)每次都必须从头开始该窗口的内容会根据用户选项而变化(他们可能会选择 2D 视图等),并且稍后还会绘制不打算旋转的内容。因此,我看不到如何对其进行编码,以便模型视图矩阵随着每次重绘而连续更新为

a) 在某些重绘时,它需要默认恢复为无旋转(例如 2D 选项)(但我仍然想“记住”3D 对象的旋转)

b) 场景的其余部分不会被旋转,所以我必须将矩阵弹出回之前的 glOrtho...

我能看到的直接方法是

1)构建所有鼠标拖动的数组并相应地记录,例如,在第 10 次鼠标拖动时,通过 glRotatef 应用 10 次旋转(我不喜欢这样的解决方案,它很难看!)

2)记录模型视图矩阵的状态,并在适当的时候保存和加载。(我读过的东西表明这不是 openGL 应该如何使用的?)

3)找到一个能够减少的数学变换

进入

这个解决方案将是最......令人愉悦的。

(伪)代码:

0 投票
2 回答
3988 浏览

c# - 使用three.js旋转对象而不是相机

我想在鼠标按下事件发生时旋转对象,但现在的问题是当我单击鼠标左键时,对象会在相机上旋转......我不明白问题出在哪里......

下面是代码

我不是使用three.js文件的初学者,所以如果有人知道我的问题,请帮助我......只想在点击鼠标时旋转对象......

谢谢,普拉蒂克

0 投票
1 回答
280 浏览

3d - (任何)轨迹球是否允许检索围绕 Z 轴的旋转?

这个问题可能有点奇怪,特别是因为轨迹球现在并不常见。但是我这里有一个 kensington 专家鼠标,因为我正在创建一个图形工具,所以我想知道是否有任何方法可以从驱动程序或其他类型的 API 中检索偏航或球绕轴垂直的旋转到桌子上。或者,最好是旋转矩阵,或旋转轴和旋转角度。

恐怕答案可能是否定的,但在这种情况下,是否有任何其他轨迹球模型允许这样做?