写点什么

用 C#和 LINQ 开发 Ray Tracer

  • 2007-04-22
  • 本文字数:332 字

    阅读完需:约 1 分钟

.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 的博客中得到。

2007-04-22 22:551220

评论

发布
暂无评论
发现更多内容

秒懂算法 | 回归算法中的贝叶斯

TiAmo

算法 贝叶斯公式 贝叶斯算法

for循环中声明变量的一个问题回顾

老王同学

c++

2023-02-25:请用go语言调用ffmpeg,解码mp4文件并保存为YUV420SP格式文件,YUV420P不要转换成YUV420SP。

福大大架构师每日一题

golang ffmpeg 福大大

Python:Excel自动化实践入门篇 甲【送图书门票】

eng八戒

python excel

电影排行榜(requests + bs4 & scrapy)

漫步桔田

引领下一代操作系统技术方向 第一届OpenHarmony技术峰会成功召开

极客天地

Zebec社区上线ZIP-2(地平线升级行动)提案,海量激励将被释放

鳄鱼视界

Python 数学练习题(一)

漫步桔田

time_point 的基本用法举例

老王同学

C++11

人肉智能#003:为什么 Instagram 曾经值得尊敬

光毅

facebook Instagram

PHP Windows 下 XAMPP 的 xdebug 配置

HoneyMoose

Java 数据类型(全网最全)

kcodez

Java 后端

数字孪生在智慧物流中的应用价值

申扬科技

智慧物流 数字孪生

速来~与 Werner Vogels 博士一起探索敏捷性与创新速度一起提升的秘方

亚马逊云科技 (Amazon Web Services)

极客时间架构训练营模块八作业-消息队列存储消息数据的 MySQL 表格

张Dave

Python电影售票系统

漫步桔田

如何使用开源构建可信赖的人工智能

开源雨林

人工智能 开源

Amazon S3 服务15岁生日快乐!

亚马逊云科技 (Amazon Web Services)

数据库 云计算

三天吃透MySQL八股文(2023最新整理)

程序员大彬

Java MySQL 数据库

精华推荐 |【算法数据结构专题】「延时队列算法」史上非常详细分析和介绍如何通过时间轮(TimingWheel)实现延时队列的原理指南

码界西柚

数据结构 延时队列 算法框架 DelayedQueue 时间轮(TimeWheel)

架构实战营-模块三作业

🐢先生

架构实战营

用C#和LINQ开发Ray Tracer_.NET_Jonathan Allen_InfoQ精选文章