问题标签 [gl-matrix]

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 投票
1 回答
301 浏览

3d - WebGL 和 glMatrix 最小示例,带有外观和透视变换

我是 3d 图形的新手,我正在尝试弄清楚如何在 glMatrix 数学库中使用 lookAt 和透视矩阵。

在这一点上没有尝试做任何花哨的事情,但我相信我遗漏了一些东西,这是我的代码的相关部分:

当我运行这个时,我相信我应该得到一些东西来显示,但什么都没有出现。我期待看到两个红色三角形(如果我不使用 lookAt 和透视矩阵,我可以看到它们)。我确信我错过了一些简单的东西,所以任何帮助都将不胜感激。我附上了下面的完整片段,这是一个小提琴:

https://jsfiddle.net/mh9q7ouw/1/

0 投票
0 回答
169 浏览

webgl - 实现 raycast 介绍自定义 webgl - 基于 glmatrix 的引擎解决方案

如果有人想提供帮助或任何类型的建议(链接),我会很满意。我用基于场景对象的渲染创建了一个小引擎。

三角形的成功,但只有当相机在三角形的前面时。之后App.camera.FirstPersonController = true 你可以走到后面尝试 raycask click 不起作用。

也许对我来说最大的问题是轮换。翻译是在 mvMatrix 上进行的,但如果我改变位置,还需要添加:

将 + object.position.worldLocation[0] 添加到输入顶点,当我改变位置时一切正常......

但是如何使适应旋转。例如,在旋转变化后, App.scene.MyColoredSquareRayObject.rotation.roty = -45 光线投射根本没有捕捉到任何检测......

如果我不改变旋转,那么即使在第一人称状态下也能正常工作(鼠标给出旋转坐标)。

如果我使用App.scene.MyColoredSquareRayObject.rotation.rotz = 90 z 的 raycast 作品感兴趣。

In draw function [mouse oook work raycast] i expected everything (is calculated) to work but it doesn't

现场查看演示

项目 - raycast.js 文件

检查整个项目

0 投票
1 回答
63 浏览

r - 为什么 DLNM(R) 中的湿度显示 coef/vcov 与基矩阵不一致,但温度正常

每个人。我在 R 中使用 DLNM 来分析气候条件对疾病流行的滞后效应。我严格按照别人的程序,它在avg.temp和max.speed中工作,但在avg.ap和avg.hum中显示错误“ coef/vcov与基矩阵不一致”。但是,我只是更改了代码中设置的变量,并没有更改其他代码。我有一个假设,也许 DLNM 不喜欢潮湿的天气。TT 我不知道该怎么办,你能帮帮我吗?

第 1 部分是成功运行的代码,第 2 部分是显示错误的代码,第 3 部分是我使用的数据。非常感谢。我希望你能帮帮我

第 1 部分。成功运行代码

第 2 部分。错误代码

第三部分,数据如下:

10 5.16 12-Oct 2012 10 990.70 23.60 72.20 6.20 11 4.61 12-Nov 2012 11 991.70 18.00 79.70 6.90 12 5.26 12-Dec 2012 12 995.00 13.20 74.90 6.50 13 3.79 13-Jan 2013 1 997.10 11.20 78.40 5.70 14 3.87 13-Feb 2013 2 993.50 15.30 82.20 6.50 15 3.37 13-Mar 2013 3 989.90 20.20 74.20 8.00 16 2.85 13-Apr 2013 4 987.00 21.50 78.50 7.70 17 4.38 13-May 2013 5 983.30 25.60 79.20 6.80 18 5.67 13-Jun 2013 6 980.60 27.40 76.90 6.60 19 6.45 13-JUL 2013 7 981.30 28.00 77.50 7.10 20 6.95 13-AUG 2013 2013 8 980.50 27.90 78.20 78.20 7.90 7.90 21 6.51 13-SEP 2013 9 985.90 25.40 25.40 77.40 77.40 77.60 6.00 6.00 6.00 994.50 18.70 72。30 6.20 24 6.18 13-Dec 2013 12 997.30 11.70 67.20 5.30 25 5.69 14-Jan 2014 1 996.70 12.70 70.30 6.00 26 6.44 14-Feb 2014 2 993.00 12.10 76.90 6.40 27 4.16 14-Mar 2014 3 991.60 16.50 83.90 7.30 28 4.13 14- Apr 2014 4 987.60 22.60 82.40 6.70 29 3.96 14-May 2014 5 983.60 25.70 78.80 7.70 30 4.72 14-Jun 2014 6 979.20 27.70 81.40 7.90 31 5.21 14-Jul 2014 7 980.70 28.30 80.20 9.40 32 5.29 14-Aug 2014 8 982.40 27.50 81.30 7.50 33 6.74 14-Sep 2014 9 984.70 27.10 77.70 8.50 34 4.80 14-Oct 2014 10 991.20 23.90 73.10 5.90 35 4.31 14-Nov 2014 11 993.30 18.60 79.60 6.20 36 4.35 14-Dec 2014 12 998.70 12.30 67.30 5.90 37 2.95 15-Jan 2015 1 996.70 13。30 76.30 6.20 38 4.63 15-Feb 2015 2 993.50 15.50 78.30 6.50 39 4.00 15-Mar 2015 3 991.70 17.70 83.40 6.30 40 4.16 15-Apr 2015 4 988.40 22.80 70.20 7.30 41 4.67 15-May 2015 5 982.40 26.70 80.50 8.00 42 5.62 15 -Jun 2015 6 980.90 28.20 81.00 7.40 43 5.04 15-Jul 2015 7 980.20 27.30 79.40 6.70 44 5.79 15-Aug 2015 8 982.40 27.60 80.10 6.50 45 5.28 15-Sep 2015 9 986.30 26.00 84.60 6.50 46 4.39 15-Oct 2015 10 991.20 23.00 78.30 6.90 47 4.13 15-NOV 2015 11 993.50 19.40 85.30 6.90 48 3.30 48 3.30 15-DEC 2015 2015 12 997.80 13.00 80.90 5.70 5.70 49 5.30 49 5.30 16-16-JAN 2016 1 996.00 11.80 11.80 11.80 11.80 11.40 820 6.40 6.40 50 4.57 16-FEB 2016 2 997.9997.997.997.98.98.98.98.98.98.98.98.98.98.98.98.98.98.98.98.98.98.98.98.98.98 00 m an66 16-Mar 2016 3 991.70 17.00 78.90 7.00 52 4.01 16-Apr 2016 4 984.60 23.40 80.90 9.80 53 4.90 16-May 2016 5 983.80 25.50 78.70 8.30 54 3.75 16-Jun 2016 6 981.70 28.20 78.80 7.70 55 3.13 16-Jul 2016 7 981.10 28.90 77.60 7.60 56 3.25 16-AUG 2016 8 979.00 28.00 28.00 79.80 8.70 8.70 57 2.93 16-SEP 2016 9 984.30 26.60 26.60 75.20 6.40 58 2.93 2.93 16-oct 2016 16-oct 2016 16-O 16-Dec 2016 12 995.70 15.40 71.70 6.80 61 3.10 17-Jan 2017 1 994.70 14.50 79.20 6.50 62 3.75 17-Feb 2017 2 994.80 14.70 71.50 8.30 63 3.49 17-Mar 2017 3 990.20 16.50 83.60 8.50 64 3.36 17-Apr 2017 4 986.80 21.90 76.70 7。80 65 3.69 17-May 2017 5 985.00 24.80 77.50 10.00 66 3.76 17-Jun 2017 6 980.20 26.90 84.80 8.50 67 2.69 17-Jul 2017 7 981.00 27.50 83.60 9.80 68 3.05 17-Aug 2017 8 980.50 27.70 83.40 9.00 69 3.05 17-Sep 2017 9 984.20 27.60 81.50 7.10 70 2.46 17-Oct 2017 10 990.00 22.80 75.90 7.90 71 2.08 17-Nov 2017 11 993.00 17.80 79.50 7.00 72 2.32 17-Dec 2017 12 996.90 13.30 69.30 6.90 73 2.53 18-Jan 2018 1 992.10 12.00 78.40 8.10 74 3.29 18-Feb 2018 2 992.90 13.40 68.70 7.20 75 3.03 18-Mar 2018 3 988.30 19.20 78.20 9.10 76 2.30 18-Apr 2018 4 986.50 21.80 77.30 8.70 77 1.75 18-May 2018 5 982.60 26.70 79.40 8.90 78 2.03 18-Jun 2018 6 978.30 26。90 81.60 9.00 79 2.79 18-Jul 2018 7 976.80 27.90 82.10 9.20 80 2.32 18-Aug 2018 8 976.40 27.50 83.40 9.60 81 1.88 18-Sep 2018 9 983.50 26.10 80.10 8.90 82 2.76 18-Oct 2018 10 990.50 21.10 78.70 7.10 83 2.14 18 -Nov 2018 11 991.50 18.20 80.30 7.10 84 1.78 18-Dec 2018 12 994.50 13.00 84.00 7.80 85 2.77 19-Jan 2019 1 995.20 11.70 84.50 7.30 86 4.60 19-Feb 2019 2 990.50 13.70 84.80 8.10 87 2.32 19-Mar 2019 3 987.70 17.30 85.90 9.90 88 2.07 19-APR 2019 4 983.60 23.10 84.80 9.80 9.80 89 2.97 19-MAY 2019 5 981.80 24.30 83.20 83.20 7.70 90 90 90 2.48 19-JUN 19-JUN 2019 6 977.8006 2019 年 8 月 19 日 8 977.20 28.30 81.20 10.30 93 2.10 2019 年 9 月 19 日 9 984.60 26.40 72.70 8.20 94 2.89 2019 年 10 月 19 日 10 989.10 7.00.70 78.0

0 投票
1 回答
40 浏览

quaternions - 使用带有 gl-matrix.js 的四元数进行简单旋转

我正在尝试理解四元数,并且在将其转换为实际有用的东西时遇到了很多麻烦。我看过一些 3blue1brown 的视频并阅读了一些教程,但我似乎无法将我看到的东西翻译成简单的东西,这意味着我根本不了解它。

从我能想到的最简单的例子开始,我想从 xyz (1, 0, 0) 处的一个点开始,围绕 Z 轴旋转 90 度。这应该给我点(0、1、0)。使用三角函数,进行旋转很简单(doSimple())。

正如我所说,我缺乏对四元数基础知识的理解,但据我所知,3d 空间中的一个点可以用 x、y、z 和 0 表示 w。而且gl-matrix有一个 'quat.rotateZ' 方法,看起来它应该围绕该轴旋转一个角度。我的结果似乎表明它只旋转了 1/2 角度并且方向错误(repl.it):

doSimple()在我看来很好:

doQuat()使用quat.rotateZ()并且似乎只旋转 45 度并且方向错误:

doAngle()似乎报告在 (1,0,0) 和 (0,1,0) 之间有 180 度:

所以我知道我完全误解了一些东西,但我不知道它是什么......

- -编辑 - -

我认为我的很多困惑源于示例中的不同术语。 gl-matrix使用 x,y,z,w。3blue1brown 使用<blank>, i,j,k。 本文使用 q0,q1,q2,q3。 论文中的这个计算器似乎没有意义,因为 Yaw 围绕 Z 轴旋转,围绕 Y 轴俯仰,围绕 X 轴滚动?

如果我在 3d 空间中思考,我思考事物的正常方式是 Z 面向屏幕外,X 和 Y 代表屏幕上的正常 2d 图形(X 点“右”,Y 点“上”)。偏航应该围绕 Y 轴旋转,俯仰应该围绕 X 轴旋转。

我想错了吗?在尝试学习时,是否有一组(或多组)查看坐标系、旋转和四元数的标准方法?例如我认为由于 gl-matrix 使用 x,y,z,w 而论文使用 q0,q1,q2,q3 而 3b1b 使用空白,i,j,k,我认为转换如下:

  • q0 -> 空白 -> w
  • q1 -> i -> x
  • q2 -> j -> y
  • q3 -> k -> z
0 投票
0 回答
16 浏览

graphics - 多对象旋转边界框

不确定这是否是要问的地方,但它就在这里。

我正在开发一个应用程序,用户可以在其中放置形状并旋转它们。

当我选择具有相同旋转的多个对象时,我希望有一个与对象旋转相同的边界框。Adobe Illustrator 有这样的行为:

在此处输入图像描述

我知道如何获得这些形状的轴对齐边界框。如何获得定向边界框?作为数据模型,我有每个形状左上角的变换矩阵和形状几何(即矩形的宽度和高度)。不确定是否重要,但我主要在 javascript 环境中工作并使用 glmatrix 进行数学计算。

0 投票
1 回答
40 浏览

javascript - 未捕获的 ReferenceError:即使下载了 gl-Matrix 库,也未定义 mat4

我正在使用 webgl、JavaScript 和 HTML 构建 2d 图形引擎,我希望 gl-Matrix.js 图形库进行转换,所以我从他们的网站https://glmatrix.net下载了 lg-Matrix 库 zip 文件并提取将其放入lib我的项目中调用的文件夹中。我没有忘记.js使用script tag

然后我调用一些lg-Matrix函数如下。

this.mWhiteSq是一个在画布中间绘制一个白色方块的函数,它也应用给定的转换。

问题是浏览器中的 JavaScript 控制台打印了标题中提到的错误消息。它说 mat4 没有定义。

0 投票
1 回答
24 浏览

javascript - 使用css matrix3d多次缩放到特定矩形

我正在尝试创建一个缩放图像工具,为此我将 matrix3d 与 glMAtrix https://glmatrix.net/一起使用

我有以下组件:

  • 代表最终视图的画布(黑色)
  • 画布内较小的可调整大小的矩形(红色)
  • 画布后面的 div 内的图像(带有文本的蓝色),一开始与画布具有相同的位置和尺寸

这个想法是,当我调整红色矩形的大小后,我应该在最终视图中将图像从较小的矩形缩放到全屏,这是我第一次这样做,但是下次我尝试重新缩放它时翻译不好。

在此处输入图像描述

如果我释放红色矩形,则应该进行缩放,以便我可以看到红色矩形中的内容,完全在黑色矩形中。

这是我尝试过的:

顺便说一句,翻译和缩放是更深层次的组件,所以我嘲笑它们,但它们基本上是这样做的:

我的想法是尝试将红色矩形的左上点转换为图像坐标,然后进行平移和缩放。

关于如何使用matrix3d以不同方式执行此操作的任何想法?或者,如果您知道一些我可以看到如何缩放到矩形的示例。谢谢。