写点什么

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

评论

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

优秀团队的“双向奔赴”:新晋 Committer 的进化之路

Apache IoTDB

Easysearch 磁盘水位线注意事项

极限实验室

easysearch

【每日学点HarmonyOS Next知识】swiper样式、日期选择、自定义弹窗键盘、文本组件换行、富文本适配

轻口味

HarmonyOS HarmonyOS NEXT

macOS Sequoia 15.3.2 (24D81) Boot ISO 原版可引导镜像下载

sysin

macos

大模型叙事下的百度智能云:比创新更重要的,是创新的扩散

Alter

为什么要禁用不安全的HTTP请求方法?从安全整改实践谈起

coolion

nginx 前端 网络安全 HTTP

AI搜索,难分胜负

趣解商业

百度 科技 AI搜索 腾讯元宝

[大厂实践] Pinterest Ray 基础设施实践

俞凡

人工智能 大厂实践

IEC新增滤波器材料透过率标准,三安方案推动全球产业链工艺革新

财见

SvelteKit 最新中文文档教程(1)—— 入门指南

冴羽

vue.js 前端 React Svelte SvelteKit

神州数码爱问学Beta版开放测试:本地部署大模型助力AIPC时代到来

编程猫

.NET Core 中如何实现缓存的预热?

不在线第一只蜗牛

.net spring 缓存

日志易SPL高效进阶:语法编辑器的妙用

日志易

编辑器 日志易SPL

网易伏羲人工智能实验室技术创新再突破!前馈捏脸等3篇论文入选CVPR 2025

网易伏羲

人工智能 论文 网易伏羲

直播预告 | PaperRaeding:基于深度强化学习的查询优化框架 FOSS

KaiwuDB

直播 数据库、 KaiwuDB

【每日学点HarmonyOS Next知识】span问题、组件标识属性、属性动画回调、图文混排、相对布局问题

轻口味

HarmonyOS HarmonyOS NEXT

ETL与ELT核心技术解析:如何选择最优数据集成方案

谷云科技RestCloud

数字化转型 ETL ELT 数据集成工具

SelectDB 实时分析性能突出,宝舵成本锐减与性能显著提升的双赢之旅

SelectDB

大数据 数据仓库 数据分析 电商 实时分析

直播预告:慢热的 MCP 终于火了;什么是 MCP,以及智能体通信协议的未来丨RTE Dev Talk

RTE开发者社区

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