AFRAME 屏幕到世界位置

2023-12-07

我正在尝试通过 Aframe 将鼠标位置转换为三中的世界坐标

使用类似的东西

let mouse = new three.Vector2()
let camera = document.querySelector('#camera')
let rect = document.querySelector('#sceneContainer').getBoundingClientRect()
mouse.x = ( (event.clientX - rect.left) / rect.width ) * 2 - 1
mouse.y = - ( (event.clientY - rect.top) / rect.height ) * 2 + 1

let vector = new three.Vector3( mouse.x, mouse.y, -1 ).unproject( camera )

然而它似乎无法处理相机,我明白了

类型错误:无法读取未定义的属性“元素”

来自 Matrix4.getInverse

9550 | 
 9551 | // based on http://www.euclideanspace.com/maths/algebra/matrix/functions/inverse/fourD/index.htm
  9552 | var te = this.elements,
> 9553 |    me = m.elements,
  9554 | 
  9555 |    n11 = me[ 0 ], n21 = me[ 1 ], n31 = me[ 2 ], n41 = me[ 3 ],
  9556 |    n12 = me[ 4 ], n22 = me[ 5 ], n32 = me[ 6 ], n42 = me[ 7 ],

我认为它没有正确读取相机,如果这是问题的话,关于如何将三个相机从框架相机中取出的任何想法?


使用 Piotr 关于访问相机并将“三”修复为“三”的信息似乎有效:

https://glitch.com/edit/#!/aframe-mouse-to-world

AFRAME.registerComponent('mouse-to-world', {
  init: function () {
    document.addEventListener('click', (e) => {
      let mouse = new THREE.Vector2()
      let camera = AFRAME.scenes[0].camera
      let rect = document.querySelector('body').getBoundingClientRect()
      mouse.x = ( (e.clientX - rect.left) / rect.width ) * 2 - 1
      mouse.y = - ( (e.clientY - rect.top) / rect.height ) * 2 + 1
      let vector = new THREE.Vector3( mouse.x, mouse.y, -1 ).unproject( camera )
      console.log(vector)
    })
  }
});
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

AFRAME 屏幕到世界位置 的相关文章

  • 在 TypeScript 中使用三个 Js + OrbitControl

    我无法得到this http www example com 在 TypeScript 中使用上述组合的示例 I have and 在我的html中和打字稿文件
  • Three.js - 如何翻译几何图形

    我有一个脚本 可以定位各种宽度 高度和深度的立方体 并且正在努力根据 xAxis yAxis 和 zAxis 也有所不同 将它们准确地排列起来 var geometry new THREE BoxGeometry width height
  • 开始使用 Three.js 中的行进立方体

    我是 Three js 的新手 正在寻找教程来帮助我开始了解如何在 Three js 中使用 Marching Cubes 到目前为止 我在 Three js 中看到的一些使用它的项目对我来说有点复杂 所以一个简单的教程会很好 谢谢 像您一
  • 从matrix4()获取翻译

    对于大多数 Three js 开发人员来说 这可能看起来像是一个虚拟问题 但是如何从转换矩阵中提取翻译呢 实际上 我手动提取它指向 矩阵数组位置 12 13 14 提前致谢 如果要从矩阵中提取平移分量 请使用以下模式 var vec new
  • 如何在 Three.js 中重新调整三角形面的方向

    用更好的例子进行编辑 我使用 Three js 来显示 MRI 胃图像的外壳 外壳是从 vtk 格式的外部文件加载的 这是一个演示 http www menne biomed de uni 3d alphahull html http ww
  • ThreeJS 动画光色

    我制作了一个定向灯 我想随着时间的推移改变颜色 我正在阅读文档 http threejs org docs index html Reference Math Color 但仍然没有启动并运行 在初始化之前我声明变量 var rmapped
  • 三.js如何通过id(name)获取场景

    我创造了一个场景 如何通过 id name 获取它 喜欢jquery test In three js医生 我刚刚找到scene getObjectById 获取子对象 有一个getObjectByName方法用于此这里在Object3D
  • 如何在 Aframe 中的平面上加载 gif(具有透明度)(故障)?

    大家好 我是 Aframe 的新手 正在尝试在空间网络环境中设置一大堆 gif 我在飞机上加载 gif 时遇到了一些困难 我已经通过 Aframe 的资产文件夹加载了图像 故障 目前它看起来像这样
  • 为什么环境光在此示例中不起作用?

    在以下示例中 环境光不起作用 一切都是黑色的 为什么会发生这种情况 我该如何解决它 如果我放聚光灯 它就可以工作 所以环境光一定有问题 但我遵循了文档 O
  • Three.js 变换控件 - 如何仅显示两个箭头

    我必须仅使用场景中的变换控件在 XY 方向上显示两个箭头或变换对象 通常 我会问您到目前为止尝试过什么 但是没有关于此控件的文档 如果您不知道自己在寻找什么 那么它是一个相当复杂的对象 需要深入研究 考虑你有一个TranformContro
  • Three.js - 如何使用姿势估计数据为 3D 模型制作动画

    我正在尝试使用姿势估计坐标来对 Three js 中的装配模型进行动画处理 我正在使用的姿势估计技术提供了视频源中人物的实时 x y z 坐标 我正在尝试使用这些坐标相应地移动 3D 模型 我使用下面的代码 其中一些代码是我在相关问题的答案
  • Morph 目标为 Three.js

    我正在尝试开始使用变形目标和 Three js 然而 关于这个主题的文档似乎并不多 当我查看源代码时 morphTargetInfluences 似乎是有魔力 这是如何运作的 我该如何使用这个 值为1就是全力吗 如何区分同一模型上的不同变形
  • 在 Three.js 中绕点旋转对象的正确方法是什么?

    关于 Three js 的大多数教程 问题都建议使用 Three js 绕点旋转对象的方法是在要旋转的位置创建父对象 附加对象 然后移动子对象 然后 当父级旋转时 子级围绕该点旋转 例如 Make a pivot var pivot new
  • Three.js:缩放几何图形后错误的 BoundingBox

    在我的场景中 我有一个简单的立方体 var test new THREE Mesh new THREE CubeGeometry 10 10 10 new THREE MeshBasicMaterial scene add test 该立方
  • ThreeJS无法加载Json文件

    首先 我已经读过这个问题 https stackoverflow com questions 17201888 three js exporter export object not working with jsonloader r58没
  • 如何在 A 形框架中显示文本?

    For http aframe io http aframe io 如何在无需创建图像的情况下渲染文本 EDIT 文本组件已登陆 A Frame 主分支 这将在 0 5 0 中推出 该组件将支持字体 对齐方式 锚点 基线 着色器等
  • 了解截断二十面体的几何形状,以进行渲染

    我正在尝试使用可点击区域来渲染像上面这样的截断二十面体Three js http stemkoski github io Three js js Three js 我找到了正二十面体的代码 var t 1 Math sqrt 5 2 var
  • React NotFoundError:无法在“Node”上执行“insertBefore”:要插入新节点的节点不是该节点的子节点

    当我在 React 中内置的 Aframe 资产管理器中更新新资产时 出现此 notFound 错误 资产管理器组件的构建如下 export class Assets extends PureComponent render const h
  • 在 Three.js 中设置 2D 视图

    我是新来的three js我正在尝试使用这些 3D 工具建立 2D 可视化 针对各种分层精灵 我想要一些指导PerspectiveCamera 论据和camera position set 论据 我已经朝着正确的方向轻推了这个答案 http
  • Collada 模型面在 Three.js 中无法正确显示

    将 collada 模型导入到 Three js 后 模型的某些面只能从模型内部看到 从外部看不到 如何解决相关面孔的问题 是否可以让模特的脸部从两侧都可见 它无法正常工作的原因是您的文件设置了此双面标志

随机推荐

  • 浏览器后退按钮不会清除旧的后备 bean 值

    我们使用 JSF2 我们有一个带有表单字段的页面 其中命令按钮链接到支持 bean 当我们访问表单页面 输入值并提交时 支持 bean 会收到正确的值并将其带到下一页 如果我按浏览器中的后退按钮 它将转到带有表单的上一页 如果我在表单中输入
  • 如何实现通用的max函数?

    我知道这是因为模板函数的返回类型与第一个参数 T 的返回类型相同 如何修改此模板 使其在所有情况下都能正确运行 include
  • EventEmitter类的清晰概念

    代码写入子组件 mycomponent ts import Component OnInit EventEmitter Output from angular core Component selector app mycomponent
  • 将 shell 变量传递给 JSON 请求以进行curl?

    让我们看下面的例子 curl i X POST H Content Type application json d jsonrpc 2 0 method Player Open params item false http example
  • 排序多维数组javascript

    我想对双精度的多维数组进行排序 该数组如下所示 1 2 2 3 5 6 8 9 我想按 X 值对其进行排序 并保持 x y 值配对 我在网站上搜索了多维排序 发现了类似的帖子these其中排序函数修改如下 location sort fun
  • 如何检查字符串是否可以转换为浮点数?

    首先 我的背景是需要将浮点文字 字符串 转换为浮点 双精度值的编译器编写者 过去 15 年我没有做过任何浮点编程 所以我很确定这是一个完全愚蠢的新手问题 double res errno 0 res strtod const char li
  • 如何设置TabHost背景颜色

    我需要帮助 我发现在 TabHost 中更改背景颜色很困难 原图 我需要修改背景颜色 如下图所示 我也在我的代码和 XML 中尝试了很多东西 但都失败了 我的代码如下 TabHost tabHost getTabHost Tab 1 Tab
  • 如何在C++中设置文件权限(跨平台)?

    我正在使用 C ofstream写出一个文件 我想将权限设置为只能由用户访问 700 在unix中 我想我可以发出一个system chmod 700 file txt 但我需要这段代码也能在 Windows 上运行 我可以使用一些Wind
  • 如何使用Robot Framework处理提示框?

    我使用 Robot Framework 和 Selenium2Library 进行网站测试自动化 在其中一种情况下 会出现一个提示框 类似于警报的弹出窗口 但其中有一个输入字段 请参阅例子在这里 要求一些文字 问题是 Robot Frame
  • FileSystemWatcher Changed 事件引发两次

    我有一个应用程序 我正在寻找一个文本文件 如果对该文件进行了任何更改 我正在使用OnChanged事件处理程序来处理事件 我正在使用NotifyFilters LastWriteTime但该事件仍然被解雇两次 这是代码 public voi
  • Java IOException - 流已关闭

    I get IOException 流已关闭 当我运行这个程序时 文本包含许多行数据 程序应该读取每一行 执行必要的功能并将输出写入新文件 我很困惑应该先关闭哪个作家以及在哪里 import java net import java io
  • 将键放在 gnuplot 中的多图下方

    正如标题所示 我想将图例放在多图下方 我只为其中一张图添加图例 因为所有图的线条样式都相同 我遇到的问题是 如果我添加密钥set key below 绘图本身会调整大小以适合画布内的 大 键 我宁愿保持地块的大小 我尝试将密钥添加为多图中的
  • 函数 .C -- 参数设置编译失败

    我目前正在学习在 R 中调用编译的 C 代码 昨天 我为无限 pi 系列创建了一个函数 当在 R 中运行时 它返回一个长度为 1 的数字向量 pi 效果很好 今天我正在研究一个输出可变长度数值向量的函数 即为用户定义的斐波那契序列计算的n
  • 调整最后一行的弹性项目的大小

    我的问题是我想要具有可变范围宽度的弹性盒 并且一切正常 但不是在最后一行 我希望所有子项都具有相同的维度 即使该行未充满子项 最后一行 products list position relative display flex flex fl
  • 不可能制作一个有大小限制的缓存线程池吗?

    似乎不可能创建一个限制其可以创建的线程数量的缓存线程池 这是静态的Executors newCachedThreadPool在标准Java库中实现 public static ExecutorService newCachedThreadP
  • 如何将嵌入的 JSON 扁平化为多个文档

    考虑以下 JSON Company ABC Company Place Bangalore Address MG Road Phone 988888 888866 365656 Mubmai Address 1st
  • 为什么 Spark 应用程序会失败并出现“线程“main”java.lang.NoClassDefFoundError: ...StringDeserializer 中的异常”?

    我正在开发一个 Spark 应用程序 该应用程序使用 Spark 和 Java 监听 Kafka 流 我使用kafka 2 10 0 10 2 1 我为 Kafka 属性设置了各种参数 bootstrap servers key deser
  • 在聊天模拟器机器人框架中显示数据

    我需要在聊天中显示大量数据 我想在机器人框架的聊天模拟器中以表格形式显示它 For eg 点餐 披萨 数量 1 时间 下午 1 点 点餐 汉堡 数量 2 时间 下午 3 点 我想以表格方式显示它 正如中所解释的docs 消息的默认文本格式是
  • 在 Kotlin 中注释属性时,注释的默认目标是什么?

    Kotlin 中的注释可以有不同的使用站点目标 如下所述 https kotlinlang org docs reference annotations html annotation use site targets 我的问题是 当未明确
  • AFRAME 屏幕到世界位置

    我正在尝试通过 Aframe 将鼠标位置转换为三中的世界坐标 使用类似的东西 let mouse new three Vector2 let camera document querySelector camera let rect doc