哪个线性代数用于Haskell中的OpenGL?

时间:2012-08-12 19:01:07

标签: opengl haskell linear-algebra

我正在尝试在haskell中进行一些OpenGL编程。但我对图书馆的现状感到困惑。 OpenGL使用Tensor包,它只定义了几种向量类型(但不是以通用方式这样做)。它似乎没有提供任何Matrix实现。

还有其他一些线性代数包:tensor(注意小写T),Vechmatrix似乎比Tensor更完整。

我要搜索的内容应该至少包含3d和2d图形中使用的常用功能,具有合理的性能并且应该与OpenGL兼容,但我想我将不得不为此更改库。

2 个答案:

答案 0 :(得分:2)

迟到的回答,对不起。 HMatrix是这类事物的标准选择。它非常兼容,有一个很好的API,实际上用于其他应用程序中的计算机视觉:http://dis.um.es/profesores/alberto/research.html

答案 1 :(得分:1)

我最近想知道同样的事情,特别恼火的是,Tensor没有为您提供便利的点产品,交叉产品,规范化等功能。

正如您所指出的,vectFloat的{​​{1}}是“硬编码”的,因此不能拥有有用的类型类实例,例如DoubleFunctorMonoid - 对于那些我们会“免费”获得大量操作的人,例如另外:Applicative

(+) <$> v1 <*> v2上,我被指向linear包。它维护良好,并附带了许多有用的实例和函数。