3D 空间:使用鼠标指针沿着对象指向的方向

2024-04-22

给定相机面向的方向的 3D 向量以及 3D 空间中 3D 对象的方位/方向向量,如何计算鼠标指针在屏幕上必须遵循的 2 维斜率,以便在视觉上沿着所述物体的方向移动?

基本上,我希望能够单击箭头并通过拖动它来使其前后移动,但前提是鼠标指针沿着箭头的长度(大致)拖动,即沿着它指向的方向。

谢谢


我不确定我是否 100% 理解你的问题。介意发个图吗?

您可能会对这些感兴趣。我回答了之前的问题计算给定相机方向的局部 X Y Z 轴 https://stackoverflow.com/questions/8633034/basic-render-3d-perspective-projection-onto-2d-screen-with-camera-without-openg/8758027#8758027(看)向量,还有一个问题在与相机平行的平面上平移物体 https://stackoverflow.com/questions/8323161/wpf3d-how-to-manipulate-objects-in-a-plane-parallel-to-the-camera/8744083#8744083.

这两个例子都使用矢量点积 http://en.wikipedia.org/wiki/Dot_product, 向量叉积 http://en.wikipedia.org/wiki/Cross_product计算所需的向量。在你的例子中向量点积 http://en.wikipedia.org/wiki/Dot_product一旦找到两个向量,也可以用来输出它们之间的角度。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

3D 空间:使用鼠标指针沿着对象指向的方向 的相关文章

  • 无法在 Android Studio 中向 Activity_main.xml 添加任何项目

    在 Android Studio 中 我无法在设计视图中将调色板中的任何项目添加到 Activity main xml 中 它只是不允许我拖放它们 知道为什么会发生这种情况吗 这是打印屏幕 根据android studio中用于androi
  • 投影 3D 网格的 2D 轮廓算法

    给定 一个 3D 网格 由一组顶点和三角形定义 并用这些点构建网格 问题 找到任意平面上投影的任意旋转网格的二维轮廓 投影很容易 挑战在于找到平面中投影三角形边的 外壳 我需要一些有关研究该算法的输入 指针的帮助 为简单起见 我们可以假设
  • 如何在 O(n) 时间内遍历二叉树而不需要额外的内存

    给定一棵带有整数 左指针和右指针的二叉树 如何在 O n 时间和 O 1 额外内存 无堆栈 队列 递归 内遍历该树 This guy http nandacumar blogspot com 2006 06 traversing tree
  • 使用Redis从有限范围内生成唯一ID

    我有一些数据库项目 除了主键之外 还需要项目所属组的唯一索引 我们来调用属性nbr 以及将项目分组在一起并定义唯一范围的属性nbr 我们会打电话group This nbr必须在 1 N 范围内 并且may从外部源导入项目时进行设置 由于所
  • 将区间映射到更小的区间的算法

    我尝试搜索 但由于问题的性质 我无法找到满意的内容 我的问题如下 我试图将 0 到 2000 范围内的数字 尽管理想情况下上限是可调的 映射到 10 到 100 范围内的更小的区间 上限将映射 2000 gt 100 和下限也是如此 除此之
  • 以与版本页面上相同的方式区分两个字符串的算法是什么?

    我正在尝试按短语区分两个字符串 类似于 StackOverflow 在版本编辑页面上区分两个字符串的方式 执行此操作的算法是什么 是否有 gems 或其他标准库可以实现此目的 编辑 我见过其他比较算法 Differ http github
  • Java 拖放图像并在拖动时显示图像缩略图

    我有一个带有图像节点的网格布局 我想在我的应用程序中添加 dnd 功能 例如 当我将图像节点拖放到目标 JPanel 时 进行一些操作 例如以原始大小显示 删除等 我已经实现了这与一种使用 Transferhandler 的方法和一种使用
  • 生成非连续组合

    我正在尝试创建一个生成器 支持执行 next 的迭代器 可能在 python 中使用yield 它给出来自 1 2 n n 和 r 是参数 的 r 元素的所有组合 这样在选出的r个元素 没有两个是连续的 例如 对于 r 2 且 n 4 生成
  • 找到两个移动物体的更好交点

    我想极大地优化我的算法之一 我将尽力以最好的方式解释它 主题 我们当时处于二维欧几里德系统中t 0 在这个系统中有两个对象 O1 and O2 O1 and O2分别位于点PA and PC O1移动于常数和已知点方向的速度PB 当物体到达
  • 用 ruby​​ 解决旅行商问题(50 多个位置)

    我在一家快递公司工作 目前 我们 手动 解决了 50 多个地点的路线 我一直在考虑使用 Google Maps API 来解决这个问题 但我读到有 24 点的限制 目前我们在服务器中使用 Rails 因此我正在考虑使用 ruby 脚本来获取
  • LibGDX - 正确使用 Polygon 类

    我创造了Polygon包裹我的飞机的物体 飞机的大小TextureRegion是 256x74 但在游戏中这个尺寸是 70x20 所以 TextureRegion texRegsAirplane TextureRegion split te
  • 合并空间上接近的路径/线段的算法

    我正在寻找一种用于街道地图制图概括的几何算法 名称 在我的地图数据中 我有许多路径 点的有序列表 由线段连接 这些路径彼此靠近且几乎平行 我如何 1 识别这些 相邻路径 即如何找到比某个阈值更接近的路径 以及 2 将它们合并成一条路径 即如
  • 当用户拖动列表视图项目时检测何时需要滚动

    介绍 我正在实现列表视图项目的重新排列 而不使用 OLE 拖放 PROBLEM 我已经成功解决了大部分任务 除了当用户想要将项目放置在当前不可见的位置时向上 向下滚动之外 问题 我可以使用以下消息向上 向下滚动列表视图 SendMessag
  • 如何对数组进行排序(索引)以使用这些索引将原始数组从最小到最大值排序

    例如我有这个数组 int a 6 10 16 11 7 12 3 9 8 5 我想像这样对其索引进行排序 6 9 0 4 8 7 1 3 5 2 所以我可以使用索引将 a 从最小到最大值排序 在我的代码中我得到了这个 6 9 4 8 7 4
  • Python:球体的交集

    我对编程非常陌生 但我决定承担一个有趣的项目 因为我最近学会了如何以参数形式表示球体 当三个球体相交时 有两个不同的交点 除非它们仅在一个奇点处重叠 球体的参数表示 我的代码是根据答案修改的Python matplotlib 绘制 3d 立
  • 确定范围是否重叠

    给定两个具有整数开始时间和结束时间的事件 E1 s1 e1 E2 s2 e2 实现快速布尔检查以查看事件是否重叠 我有解决方案 但我很想看看其他人想出了什么 编辑 好的 这是我的解决方案 e1 gt s2 s1 gt s2 e2 lt s1
  • 为无向无权图实现推重标签算法 s-t 最小割边

    我正在寻找一个好的解决方案来在无向和未加权图中找到 s t 最小切割边 我想使用推送重新标记算法 但我不确定如何实现它以在无向和未加权图上找到最小割 在每对顶点之间有两条反向边 并在所有边上赋予相同的权重 并应用推送重新标记算法 我可以用这
  • 4 x 3 锁图案

    我遇到了这个 它要求计算在 4x3 网格中可以制作特定长度的锁定图案的方式数 并遵循规则 可能有些点不能包含在路径中 有效的模式具有以下属性 图案可以使用第一次接触的点序列来表示 与绘制图案的顺序相同 从 1 1 到 2 2 的图案与图案不
  • 如何允许表单接受文件删除而不处理 Windows 消息?

    在 Delphi XE 中 我可以允许我的表单接受文件 拖放 但不必处理裸窗口消息吗 您不需要处理消息来实现这一点 你只需要实施IDropTarget并打电话RegisterDragDrop RevokeDragDrop 这真的非常非常简单
  • 如何使用KDTrees实现最近邻搜索?

    所以 我正在实施一个KD Tree http en wikipedia org wiki Kd tree进行最近邻搜索 我已经构建了树部分 但我认为我没有完全理解搜索部分 关于遍历树来搜索邻居 维基百科文章如下 Starting with

随机推荐

  • Array.sort() 在 Firefox 和 Chrome/Edge 中的行为不同[重复]

    这个问题在这里已经有答案了 我有这段极其简化的代码 它在 Firefox 中产生的结果与您在 Chrome 或 Edge 中获得 和期望 的结果相反 尚未尝试过其他浏览器 1 2 3 4 5 sort a b gt 1 forEach a
  • 错误:(26, 13) 无法解析:com.android.support:appcompat-v7:25.0.1

    错误 26 13 无法解析 com android support appcompat v7 25 0 1错误 23 24 无法解析 com android support test espresso espresso core 2 0 这
  • grid.arrange 错误:输入必须是 grobs

    我有以下 R 脚本 library ggplot2 library gridExtra Sys setenv LANG en c1 lt ggplot mtcars aes factor cyl geom bar c2 lt ggplot
  • SwiftUI:如何在没有 AppDelegate 的情况下强制横向

    我正在制作带有视频播放器的应用程序 除了这个视频播放器之外 我的整个结构仅用于纵向视图 我想仅为该视图启用横向旋转 但我查过很多论坛 每个答案都是向 App Delegate 添加一些代码 但我没有 那我能做什么呢 这是给您的演示 您可以通
  • 复杂的 Linq 查询未按预期工作

    我想合并 4 个表的结果并使用 LINQ 选择特定字段 请耐心等待 因为我没有做过复杂的 LINQ 查询 表 1 订阅者 表 2 订阅 表 3 状态 表 4 国家 地区 注意 订阅者可以有 0 个 1 个或多个订阅 这意味着外键 Subsc
  • 如何使用 Apollo 后端在 TypeScript Angular 应用程序中输入部分类型?

    编辑 我正在寻找来自 Graphql Angular 社区的权威和来源答案 以提供最佳实践示例 例如 我们在 TypeScript 中定义了一个 Person 类型 interface Person firstName string las
  • 从 WordPress 主题创建 Octopress 主题

    我已经使用 wordpress 一段时间了 想尝试一些不同的东西 进入我对静态网站生成世界的发现 现在我关注的是 Octopress 我知道它是基于 jekyll 构建的 在我开始接触 ruby 之前 我想知道是否有可能翻译我的curren
  • 并排启动两个资源管理器窗口

    有没有办法使用批处理脚本并排 垂直平铺 启动两个资源管理器窗口 如果没有 我该如何使用 VBS 来做到这一点 我已经修改了上面的VBS脚本Hackoo完全按照OP的要求去做 脚本中的注释准确地解释了它将做什么 如果两个窗口未设置到正确位置
  • 动态文件下载,无需在服务器中保存文件

    我正在使用 Apache POI 库对多个 excel 文件执行一些操作 我正在尝试下载 Excel 报告而不将其存储在服务器中的某个位置 我正在使用 Struts 2 它需要将文件输入到InputStream而 POI 工作簿需要Outp
  • Android“Hello World”教程程序。错误:[解析错误] 解析包时出现问题

    今天我决定开始为 Android 操作系统进行开发 我访问了他们的网站 下载了所有必需的软件 Eclipse Android SDK Eclipse 的 ADT 插件等 我按照提供的 Hello World 教程进行操作 链接文本 http
  • 使用媒体查询调整图像大小

    好的 我正在使用 bootstrap 3 和 Quicksand js 制作一个可过滤的投资组合 我正在使用流沙来过滤投资组合 现在 当我的图像设置宽度和高度时 我的工作正常 但是当我将宽度和高度更改为 100 时 排序很奇怪 图像在排序时
  • 如何在plotly中绘制饼图?

    如何在 fig 中绘制 pie1 子图 使其位于 第一个 位置 我就是这样做的 但没有成功 import pandas as pd import numpy as np import seaborn as sns import plotly
  • 如何将命名管道字符串从非托管代码空间发送到托管代码空间?

    我似乎遇到了命名管道 101 问题 我有一个非常简单的设置来连接从 C 非托管应用程序传输到 C 托管应用程序的单工命名管道 管道已连接 但我无法通过管道发送 消息 除非我关闭似乎刷新缓冲区并传递消息的句柄 就好像消息被屏蔽了一样 我尝试颠
  • 发生未处理的异常:开发服务器仅支持每个构建本地化单个区域设置

    请告知如何修复此错误 我正在尝试实现本地化 但遇到了此问题 我使用的指南 https angular io guide i18n merge translations into the app https angular io guide
  • Django 调试工具栏仅适用于管理部分

    嘿 我已经使用 Django 1 2 1 一段时间了 前几天遇到了 Django 调试工具栏 它看起来真的很有用 我真的很想尝试一些东西 我完全按照自述文件所说的安装了 一步步 我将中间件放在最后 以防万一出现问题 但我使用的是相当标准的中
  • 使用递归对数字求和

    我刚刚研究了递归的概念 我想尝试一个简单的例子 在下面的代码中 我尝试获取数字 1 2 3 4 5 并使用递归将它们加在一起 我预计结果是 15 但我的代码返回 16 我究竟做错了什么 Code static void Main strin
  • Terraform 13,根据另一个变量的值验证变量

    有没有办法实现以下逻辑 variable environment description The environment this will be run in can only be set to preprod test prod ty
  • file_get_contents:无法设置本地证书链文件

    我们使用 Composer 来升级 Satis 的依赖项 最近的服务器升级后 我们无法这样做 缩小可能的原因后 我们发现 file get contents php 函数在尝试建立 ssl 连接时失败 我们使用以下脚本来测试我们的 ssl
  • 使用 pandas 将一列字典拆分/分解为单独的列

    我的数据保存在postgreSQL数据库 我正在使用 Python2 7 查询这些数据并将其转换为 Pandas DataFrame 但是 该数据帧的最后一列内部有一个值字典 数据框df看起来像这样 Station ID Pollutant
  • 3D 空间:使用鼠标指针沿着对象指向的方向

    给定相机面向的方向的 3D 向量以及 3D 空间中 3D 对象的方位 方向向量 如何计算鼠标指针在屏幕上必须遵循的 2 维斜率 以便在视觉上沿着所述物体的方向移动 基本上 我希望能够单击箭头并通过拖动它来使其前后移动 但前提是鼠标指针沿着箭