问题标签 [nalgebra]

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 投票
2 回答
282 浏览

multidimensional-array - 有没有一种好方法可以在 ndarray 中进行 rust 的重叠复制?

这是我尝试过的

由于借用规则(playround link),这显然失败了:

a就是我所拥有的,b也是我想要得到的。

在 numpy 中,它就像a[:, :2] = a[:, 1:].

PS也许在nalgebra板条箱中有一个简单的解决方案?

0 投票
0 回答
442 浏览

rust - 如何旋转对象以使其始终面向鼠标位置?

我正在使用 ggez 与一些朋友一起制作游戏,并且我试图让我们的角色始终旋转以面对指针。到目前为止,我知道我需要以弧度获得角度值(f32),我想我可以使用 atan2 来获得这个(?)但是,我只是没有得到我想要的行为。

这是我的代码:(顺便说一句,move_data 是一个保存玩家角色值的结构,例如位置、速度、角度和旋转速度)。

我认为我已经接近了,因为我已经能够用它来旋转角色,但只能以一种“不完整”的方式。当我将鼠标移到那里时,玩家角色(pc)大多只能面向左上角。否则,如果指针在 pc 的右侧和/或下方,它会以非常缓慢和轻微的方式旋转,并停止面向指针。不知道这个描述有没有道理。

我认为问题在于我不完全确定 atan2 首先在做什么(我只记得一些基本的三角函数),而且我也不确定我是否正确使用它,所以我不完全知道我的代码在做什么。(这是我用于 atan2 的文档:https ://doc.rust-lang.org/std/primitive.f64.html#method.atan2 )

经过多次试验和错误后,我才到此为止,尽可能多地使用谷歌搜索(大多数 Unity 教程结果在寻找基于我的代码的算法时出现),我还在非官方的 Rust 社区 Discord 服务器中询问过,但到目前为止没有任何效果。

我之前也有这段代码,但也找不到如何让它工作。

0 投票
1 回答
250 浏览

rust - 如何在代数中平均两个点?

我有一个三角形 ABC,我想生成三角形 DEF。

三角形 DEF 是使用 ABC 的所有边的中心创建的。Nalgebra 似乎不允许我将点加在一起,只有向量。

三角形 ABC 和 DEF.

0 投票
1 回答
346 浏览

rust - nalgebra:为通用 MatrixMN 实现函数

我正在尝试为通用方形 MatrixMN 实现 exp 函数

但我不断收到这样的错误。

有没有更好的方法将泛型矩阵传递给函数?

我也试过这样的东西

但无法为 M 提出好的特征。

0 投票
1 回答
375 浏览

c++ - 如何正确从 nalgebra::Matrix 转换为 Eigen::MatrixXf?

我有一个DLL写好的C++,我需要调用一个print_matrix(Eigen::MatrixXf *m)从 Rust 程序调用的函数。

我创建了一个 4x3 矩阵,并且有问题的函数将指针作为其输入参数。

锈代码:

C++ 代码:

我的输出如下所示:

但我不明白为什么m->rows() = 12and this 的输出等于 rows * cols (4 * 3).

你知道为什么会这样吗?谢谢!

0 投票
1 回答
242 浏览

rust - 如何从 nalgebra 板条箱中获取 (1.0, 1.0, 1.0) Vector3?

我正在尝试Vector3nalgebra带有 components 的板条箱中创建一个(1.0, 1.0, 1.0)。我无法从文档中找到我需要的东西,而且我的 IDE 的建议也无济于事。

0 投票
1 回答
162 浏览

rust - 为什么 Rust 在构造 nalgebra::MatrixN 时无法找出正确的 `from_iterator`?

我有一个结构定义为:

在我的单元测试模块中,我想构造一个实例Filter

调用MatrixN::from_iterator()导致编译错误。类似的错误发生在调用::zeros()

我不清楚为什么 Rust 无法找出正确from_iterator的使用方法。是因为我必须DefaultAllocator在定义中指定Filter吗?如果是这样,最干净的解决方法是什么?

0 投票
2 回答
87 浏览

rust - 从 SliceStorage 和 SliceStorageMut 中提取原始切片

我正在开发一些软件,我在其中管理一个浮动缓冲区,Vec<T>其中T是 anf32f64. 我有时需要将此缓冲区或其中的部分解释为数学向量。为此,我正在MatrixSlice和朋友们在nalgebra.

我可以创建一个DVectorSliceMut,例如,以下方式

但是,有时我需要稍后从DVectorSliceMut具有原始生命周期的 中提取原始切片'a。有没有办法做到这一点?

StorageMuttrait 有一个as_mut_slice成员函数,但返回切片的生命周期是对Storage实现者的引用的生命周期,而不是原始切片的生命周期。DVectorSliceMut我可以接受必要时消耗的解决方案。

更新:从v0.28.0开始,方法into_sliceinto_slice_mut已分别添加到SliceStorageSliceStorageMut特征中。nalgebra

0 投票
3 回答
238 浏览

rust - 如何通过从动态矩阵视图复制来创建代数静态矩阵?

我正在尝试na::Matrix2x3通过从 a 的前两行复制来创建 a na::Matrix3。结果将存储在结构中。

我不知道该怎么做,文档很混乱。我尝试了clone(), into(),from(...)等,但似乎没有任何效果。

这是我尝试使用.clone()游乐场)的可重现示例:

这似乎可行,但由于它首先将矩阵初始化为零,因此很浪费:

在 Eigen (C++) 中,我会这样做:

0 投票
0 回答
70 浏览

rust - 是否可以通过 rust 中的 pyo3 将代数矩阵类型暴露给 python

我能够使用 pyo3 将用 Rust 编写的简单函数公开给 python,但看不到公开复杂的“特征”/矩阵类型的方法。有谁知道这是否可能?

库文件