问题标签 [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 投票
3 回答
5672 浏览

rotation - 如何在three.js(r66)中旋转对象而不使用控制相机的轨迹球

旋转物体时,我认为有两种方法[专注于旋转物体,不使用相机]:

1.直接在render()中旋转对象,就像(canvas_geometry_cube.html)

但是,这里有一个问题,当您旋转某个角度时,它不起作用。使用代码:

2.所以我尝试了另一种方法,保存关于鼠标移动的旋转矩阵(参考https://github.com/mrdoob/three.js/issues/1230中的链接)。
var newRotationMatrix = new THREE.Matrix4();

当我在 render() 中使用: cube.rotation.setRotationFromMatrix(rotationMatrix); 但它不起作用。能不能帮帮我,谢谢!

使用整个代码:

旋转解决

对不起我糟糕的英语。对象可以从四元数设置旋转。所以首先我从鼠标移动中得到四元数。(从控制轨迹球修改轨迹球)然后应用于对象。

0 投票
0 回答
984 浏览

events - 如何控制不影响对象的data.gui.js(Three.js r66)

我写了一个轨迹球来控制物体的旋转,一切都很好。但是,当我将 gui 组件添加到程序中时,当我用鼠标更改 gui 时,对象正在移动。因为我的轨迹球将屏幕坐标投影到虚拟球上,所以当我的鼠标在gui组件上时,它仍然在屏幕上,它使对象移动。如何避免这种情况?我试图找到轨迹球三.js的原因,并没有找到结果。为什么他的轨迹球不影响 gui 对象?

将我的代码更改为 ObjectTrackball.js

代码如下:

对象控制应用程序代码 (Three.js r66)

0 投票
0 回答
124 浏览

java - 如何通过代码在 Android 中打开轨迹球 LED?

有没有办法做到这一点?我在这里找到了一些东西,但它对我不起作用:/

这是我尝试过的代码:

0 投票
1 回答
1095 浏览

javascript - 如何在三个js处更新轨迹球控件

我在three.js 有一个项目,我需要在窗口调整大小时更新轨迹球控件。我需要这样做来更新使用新输入变量调用函数的整个控件。重新创建控件会导致崩溃,我不想删除控件并创建新的一个可能导致垃圾的原因。我有一个类似的问题如何在 javascript 中更新 createControls 的函数输入变量?但我认为这是更完整的问题。

0 投票
0 回答
206 浏览

javascript - 如何在窗口调整大小时更新屏幕事件上的鼠标位置?

我需要更新轨迹球控件以将鼠标位置事件检测到不同的屏幕尺寸。我有一个点击事件,它在屏幕上用黄色标记显示位置点击点。如果我刷新并尝试此事件一切正常,则 event.x 和 event.y 坐标在 window.innerWidth - window.innerHeight 处是正确的。当我调整窗口大小时,标记的偏移量与调整大小的失真相似。如果我调整宽度,只有标记在 axe(x) 处有偏移。使用轨迹球控件一切正常。我知道 handleResize() 函数,但它并没有解决我的问题。

0 投票
1 回答
653 浏览

c++ - 在 Visual Studio 2010 上使用 opencv 进行球跟踪会产生未处理的异常

我正在使用在线资源在 Visual Studio 2010 上使用 opencv 进行对象跟踪。我能够运行几个程序,但是我遇到了这个问题。

我得到的错误

该程序构建良好,并在我的网络摄像头打开时开始运行,但是,我得到一个弹出消息

在此处输入图像描述

这就是控制台所说的 在此处输入图像描述

代码如下

(来源:凯尔·豪恩斯洛)

配置

这是在 x64 系统上完成的,但我正在做一个 New->Project->VisualC++->Win32->Win32 Console Application

我处理的设置

  1. 已将 Path 变量更改为指向 C:\opencv300\build\x64\vc10\bin
  2. 在项目属性 -> 配置属性 -> VC ++ 目录 -> 包含目录下,给出包含 C:\opencv300\build\include 的路径
  3. 在库目录下,将 bin 和 lib 的路径指定为 C:\opencv300\build\x64\vc10\bin 和 C:\opencv300\build\x64\vc10\lib
  4. 在项目属性 -> 配置属性 -> 链接器 -> 输入 -> 附加依赖项下并添加以下内容 在此处输入图像描述

  5. 在项目属性 -> 配置属性 -> 链接器 -> 常规 -> 使用库依赖输入下,给出的是(默认为否)

  6. 我收到一个错误,机器类型“x64”与目标机器类型“X86”冲突:所以我做了以下 a.Properties > Configuration Properties > Linker > Advanced > Target Machine ->Selected MachineX64 b.Went to Build > Configuration Manager从 Visual Studio 的主菜单中,将 Active Solution 平台更改为 x64,将平台更改为 x64,如下所示 在此处输入图像描述

  7. 我收到了这个错误,所以我做了项目属性 -> 配置属性 -> 链接器(常规) -> 启用增量链接 -> “否(/INCREMENTAL:NO)”

请告诉我我做错了什么以及如何让程序运行而不会崩溃

0 投票
1 回答
1127 浏览

3d - 三、js轨迹球只旋转一个物体

我是three.js 和计算机图形学的新手。所以我面临着非常简单的问题。我只想旋转立方体和轴设置为静态。如何实现它,因为现在立方体和轴正在旋转?也许我必须使用另一种类型的旋转?

我的代码:

0 投票
0 回答
2233 浏览

python-2.7 - 跟踪球的 Python 代码 - 使用 OpenCV 2.4.11

我正在使用 Python (OpenCV 2.4.11) 2.7 来跟踪红球。它基于颜色检测。因此,如果有另一个具有相同颜色的非圆形物体,程序有时会丢失球。因此,我希望通过添加颜色和形状使程序更加健壮。我了解 HoughCircle 算法,但是当我使用它时,程序不起作用。因此我无法理解我的代码中的正确用法。我想获得帮助以在代码的正确位置使用 HoughCircle(或您认为更好的任何其他 f)。我已经在 stackoverflow 上搜索了其他主题,但是它在 C、C++ 或旧 OpenCV 中的某些库支持不再可用。帮助表示赞赏。

我正在使用带有 Pi 2 B 板、Python OpenCV 2.4.11 和基于红色的球检测的 Pi 相机。

0 投票
0 回答
38 浏览

three.js - 在轨迹球上设置负 minDistance?(或者,结合 PointerLock 和 Trackball)

也许这不是解决它的方法,但我正在寻找一种 PointerLock 和 Trackball 控件的组合 - 我希望能够像 PointerLock 一样通过滚动来无休止地进出移动小车,但能够拖动并像轨迹球一样在所有轴上平移和移动。

我已经尝试了几天的方法,但找不到方法……有什么简单的方法可以做到这一点吗?

谢谢!

0 投票
1 回答
861 浏览

opengl - OpenGL中的轨迹球鼠标旋转

我正在尝试使用 openGL 实现轨迹球的基本解决方案。

有 2 个旋转: - 围绕 x 轴(右方向),与上/下鼠标移动相关联。- 围绕 y 轴(向上方向),与鼠标左右移动相关联。立方体以 0 为中心,相机在 z 轴上。绘制轴:x 为蓝色,y 为绿色,z 为红色。

2组不同的旋转:

  1. 通过向下移动鼠标围绕 x 旋转 90°。Z 向下,x 向右,y 在前面。然后再次旋转:围绕 z 旋转 90°(显示的 z),鼠标向右移动。z 向右,x 向上,y 向前。

  2. 我再次处理,位置从头开始。围绕 y 成 90°。y : up , z: right , x: in front 围绕 z 再旋转 90°。x:上,z:右:y:在前面。

我确定了第二次旋转之间的不同行为。

为了连贯性,我在等待第一次操作,第二次旋转围绕 z 或第二次操作,第二次旋转围绕 x 轴。为什么 ?

对我来说,第二个操作有很好的旋转,这就是我想要的行为。谢谢您的帮助。

代码下方

立方体.cpp:

trackballcamera.cpp:

trackballcamera.h:

sdlglutils.cpp:

sdlglutils.h: