草庐IT

矛盾矩阵

全部标签

java - 着色器/矩阵问题 - 看不到对象

我正在尝试在屏幕上放置一个立方体并点亮它。我想要立方体上的phong阴影。当我运行我的代码时,我可以看到背景图像但看不到立方体。我相当确定立方体本身是正确的,因为我已经设法使用纯色着色器来显示它。我已经成功编译了着色器程序,但我根本看不到立方体。我不知道GLES/LibGdx是否有运行时异常机制,但我在日志中看不到任何内容。我假设模特不在视野范围内模型正在呈现透明两者我已尝试将我的代码缩减到我相信问题所在的位置。如果您需要查看其他内容,请直接询问。设置shader=newShaderProgram(Gdx.files.internal("shaders/phongVertexShade

java - 我认为维基百科上的 Java 矩阵链乘法算法不正确

我几乎可以肯定维基百科页面上matrixChainOrder的Java实现,MatrixChainMultiplication,是不正确的。我会改变它,但我不是一个合格的数学家,并且在没有首先审查我的观察的情况下做出改变是不舒服的。我想我要问的是——我的说法是否正确?k应该改为k+1,因为这个版本是用基于零的索引编写的,这与在同一页面上首次引入的伪代码版本不同。protectedint[][]m;protectedint[][]s;publicvoidmatrixChainOrder(int[]p){intn=p.length-1;m=newint[n][n];s=newint[n][

java - 旋转位矩阵

假设我使用大小为8的字符数组来表示图像的碰撞mask。char的每一位代表一个像素。实际上,我将为64x64矩阵使用long[64]数组。所以一个框将显示为:000000000111111001111110011111100111111001111110011111100000000045度的示例输出应如下所示,但旋转可以是任何度数。这个形状对于45度旋转可能不准确,因为我是用手做的。0001100000111100011111101111111111111111011111100011110000011000还有另一个向右小旋转--10度的示例输出?这些值可能是错误的,因为从数学上讲

矩阵的Java数据结构?

什么是我可以用于我的矩阵的最佳数据结构,它将包含短变量但大多数元素是空的..我可以简单地使用nbyb数组作为矩阵,但问题是我不想浪费内存,因为矩阵中只有几个元素..我打算使用链表或哈希表,但不确定哪个是最好的数据结构以及如何实现它.. 最佳答案 我会实现一个SparseMatrix.使用以行索引作为键的HashMap,然后为实际元素使用HashMap或TreeMap(以列索引为键).如果您正在存储原始类型,我建议您查看TroveJava集合框架。它针对原始类型进行了优化。我建议无论如何都使用它,因为key可能都是原始的。

java - 在java中将二维二进制矩阵转换为黑白图像

我是java新手。我现在有只有1和0的二维二进制矩阵。我想将它保存为具有相同宽度和高度的jpg图像(黑白)。我怎么会意识到这一点?我尝试了下面的代码但失败了,说“java.lang.IllegalArgumentException:image==null!”请帮助我或给我更好的解决方案。非常感谢。publicstaticvoidmain(String[]args)throwsIOException{//resultisdouble[25][33]binarymatrixwithonly1sand0s;intheight=result.length;intwidth=result[0].

java - 适用于 JOGL + 通用矩阵数学的快速 Java 矩阵库?

我有兴趣在JOGL2中编写一个OpenGL应用程序,使用着色器而不是固定功能管道。我需要在CPU端做一些4x4double矩阵数学运算,以替换固定功能管道的推送/弹出/转换业务。同一个应用程序还将包含一些需要对大型矩阵进行操作的机器学习代码。我已经查看了JBLAS的机器学习内容(并且由于我已经将JNI用于JOGL,所以依赖另一个native库的缺点很小),但我不确定它是否是GL的最佳选择-相关矩阵。想法? 最佳答案 你只需要操作4x4矩阵吗?大多数通用线性代数库都针对大型矩阵进行了高度优化,而很少关注较小的矩阵。我写EJML的部分原

java - 使用 MTJ/Netlib( native )的缓慢矩阵乘法性能

我需要将大小为5000x5000的大矩阵乘以20000x20000。我在寻找具有稀疏矩阵但可以进行快速乘法的库时遇到问题。首先,我阅读了上一个关于Java矩阵库性能的问题(PerformanceofJavamatrixmathlibraries?)。基于那里的最佳答案,我决定使用JBLAS,因为它是最快的之一。在我的例子中,乘以5000x5000矩阵大约需要50秒左右,这比Matlab慢很多,但仍然可以接受。问题是矩阵可能非常大(高达20kx20k或更多),但它们通常是稀疏的。矩阵中只有30%的元素是非零元素。JBLAS不提供任何稀疏矩阵实现,因此存储大型密集矩阵所需的内存占用量可能会

java - Java 中基于枚举的表/矩阵

我有两个枚举:level有3个值,criticality有4个值。这两个映射的组合到priority枚举中的8个值之一。该映射是非线性的,将来可能会发生变化。实现采用级别和关键性并输出优先级的静态函数的最佳*方法是什么?*best易于阅读和理解,易于更改且安全,并且不占用性能。考虑到输入域在未来可能会发生变化的解决方案的加分点。到目前为止我考虑的方法:嵌套switch..case。许多行和大量样板代码。如果您忘记在案例中返回一个值,也很容易出错。基本上代码如下所示:switch(bc){caseC1:switch(el){caseE1:returnEmergencyPriority.P

java - int.class.isInstance(Object) 是矛盾的吗?

这是一个例子:publicbooleancheck(Classclazz,Objecto){returnclazz.isInstance(o);}check(int.class,7);//returnsfalse自isInstance接受Object,它不适用于int,因为int是原始类型并自动装箱为Integer.那么是否有可能编写一个通用的检查方法?或者我应该确保clazz的类型是Class? 最佳答案 并不是所有的Class对象都代表类/引用类型;还有Class对象表示原始类型。这很有用,因为在对字段和方法使用反射时,您经常需

Java 8 矩阵 * vector 乘法

我想知道在Java8中是否有更简洁的方法来使用流执行以下操作:publicstaticdouble[]multiply(double[][]matrix,double[]vector){introws=matrix.length;intcolumns=matrix[0].length;double[]result=newdouble[rows];for(introw=0;row进行编辑。我收到了一个很好的答案,但是性能比旧实现慢了大约10倍,所以我在这里添加测试代码以防有人想调查它:@Testpublicvoidprofile(){longstart;longstop;inttenmi