用C#和LINQ开发Ray Tracer

.NET社区里的活跃分子Luke H.在一篇文章中展示了如何在400行的代码中,用C# 3和LINQ编写一个Ray Tracer。

Ray Trace是在二维表面上,比如计算机屏幕或者打印的纸张上,渲染3D图像的一种方法。它的做法通常是从一个2D表面的像素跟踪一个虚拟的光束到它第一次触到的三维物体。根据所触到的物体的纹理,它会继续跟踪,直到到达光源。

Luke使用LINQ简化了分类(sorting)和过滤(filtering)集合,以及计算交集时的循环的代码。虽然对象和集合不会明显地改变例子中的代码,代码中还是对它们进行了初始化。

代码之所以得到简化和减少的真正原因是,Luke用Lambda表达式(expression)代替了子类(subclass)和重载了委托(delegate)。

Ray Tracer的相关解释和本文提到的源代码可以在Luke的博客中得到。

你可能感兴趣的:(用C#和LINQ开发Ray Tracer)