Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java中矩阵和向量的数组_Java_Arrays_Rendering_Raytracing - Fatal编程技术网

Java中矩阵和向量的数组

Java中矩阵和向量的数组,java,arrays,rendering,raytracing,Java,Arrays,Rendering,Raytracing,我必须为某些课程(在Java中)实现一个渲染引擎(基于光线跟踪)。已经给了一些课程(但我可以随意改变我想要的一切)。有一些矩阵/向量类,它们对每个元素都使用单独的变量。对于4x4类型的矩阵,它看起来很难看,在我看来,它是反面向对象的。我会使用2D数组。但是Java自动执行绑定检查。如果我使用数组而不是单独的变量,这会严重影响性能吗?(我知道性能和Java并不总是匹配的,但它必须是Java的。)或者可以关闭此安全功能吗?Java确实会自动检查数组边界。这很好,不会对性能产生任何影响 我知道性能和J

我必须为某些课程(在Java中)实现一个渲染引擎(基于光线跟踪)。已经给了一些课程(但我可以随意改变我想要的一切)。有一些矩阵/向量类,它们对每个元素都使用单独的变量。对于4x4类型的矩阵,它看起来很难看,在我看来,它是反面向对象的。我会使用2D数组。但是Java自动执行绑定检查。如果我使用数组而不是单独的变量,这会严重影响性能吗?(我知道性能和Java并不总是匹配的,但它必须是Java的。)或者可以关闭此安全功能吗?

Java确实会自动检查数组边界。这很好,不会对性能产生任何影响

我知道性能和Java并不总是匹配的,但必须匹配 在Java中

这是真的,也不是真的。Java确实被编译成字节码,然后被解释。然而,java有很多优化代码的特性,包括即时编译,所以在一些测试中,java比本机代码运行得更快


最后一点:了解

4x4矩阵类有16个独立的浮点成员字段(例如:float m02、m03、…),而不是单个float[4][4]数组。我想将单独的变量更改为一个2D数组。但是如果我想访问实例元素(I,j),Java会自动检查(I,j)是否在数组的边界内。因此,我的问题是,从长远来看,这是否会成为一个巨大的性能瓶颈(在具有+-1000000个顶点的模型上进行光线跟踪)。