在 2025 收官前,看清 Data + AI 的真实走向,点击查看 BUILD 大会精华版 了解详情
写点什么

用 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:551246

评论

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

【一Go到底】第七天---运算符

指剑

Go golang 10月月更

一个 ExpressionChangedAfterItHasBeenCheckedError 错误的解决过程

汪子熙

typescript 前端开发 angular web开发 10月月更

Go设计模式“金旋风”——代理模式

Regan Yue

Go 设计模式 代理模式 10月月更

爬虫练习题(二)

张立梵

Python. 10月月更 爬虫案例

前端培训机构选择需要注意什么?

小谷哥

java培训与线上自学哪个比较好

小谷哥

Vue3入门指北(十)侦听器

Augus

Vue3 10月月更

与学长共话成长,领跑毕业新未来

宇宙之一粟

校招 10月月更

高效编程不一定意味着要疯狂写代码

宇宙之一粟

程序员 10月月更

你不知道的Java工具类库,十倍提升开发效率

一灯架构

Java java面试 10月月更

传统架构面临的挑战及上云的优势

穿过生命散发芬芳

企业上云 10月月更

Collections之ArrayList源码解读(七)

知识浅谈

ArrayList 10月月更

微信业务架构图 & 学生管理系统方案

无语

「架构实战营」

前端培训学习路线比较靠谱

小谷哥

Surpass Day——Java面向对象的创建和使用

胖虎不秃头

Java 10月月更 se

【Nacos源码之配置管理 六】集群模式下服务器之间是如何互相感知的

石臻臻的杂货铺

10月月更 nacso

Python基础(九) | time random collections itertools标准库详解

timerring

random Collections time 10月月更

大数据开发的方法有哪些

小谷哥

竟然还有人说ArrayList是2倍扩容,今天带你手撕ArrayList源码

一灯架构

Java java面试 10月月更

单模光缆与多模光缆,网络工程师必知的光缆类型

wljslmz

网络工程 10月月更 单模光纤 多模光纤 弱电

免费申请和使用IntelliJ IDEA商业版License指南

程序员欣宸

ide 10月月更 ieda

Surpass Day——Java语法基础

胖虎不秃头

Java 10月月更 se

HashMap高阶用法,十倍提升开发效率

一灯架构

Java java面试 10月月更

C++学习---cstdio的源码学习分析07-刷新文件流函数fflush

桑榆

c++ 源码分析 10月月更

Python基础(十) | Numpy详细教程

timerring

Numpy库 10月月更

【Nacos源码之配置管理 五】为什么把配置文件Dump到磁盘中

石臻臻的杂货铺

nacos 10月月更

学习编程既要追根溯源、又要紧跟时代步伐

玄兴梦影

c 编程 语法

Python基础(八) | 万字详解深浅拷贝、生成器、迭代器以及装饰器

timerring

装饰器 Python Monad 迭代器 生成器 10月月更

【LeetCode】最大升序子数组和Java题解

Albert

LeetCode 10月月更

学习大数据培训是否比较靠谱

小谷哥

推荐一款id 生成器:Hashids

xiaoxi666

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