只是为了好玩,我正在C#.NET核心上从头实现我自己的Ray Tracer,其中包括矢量,矩阵和其他Liner代数工件。
问题:对于矩阵,应该考虑到将用于Ray Tracer(我只需要2x2、3x3和4x4矩阵)的矩阵,哪种方法才是正确的实现方法? ?
注意:我不想为此使用库,这就是 “从头开始”:)
我正在探索其他在C#上创建的库,以及Unity等游戏引擎作为参考。这些库通常使用大量重复的代码创建多个结构。我假设这是可以接受的,因为这些结构不应经常修改。我更愿意这样做(2),但我想检查一下您对方法(3)的看法
对于结构,我不能使用数组,因此我需要显式创建N x N变量来保存矩阵的值。使方法(3)可行的好处是对C#索引器的支持(索引器允许对诸如数组之类的对象进行索引。为类定义索引器时,该类的行为类似于虚拟数组),因此从助手类的角度来看,它们看起来像是数组,使得可以执行任何大小(2x2、3x3和4x4)的逻辑
在这里,我将不胜感激。
致谢。