写点什么

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

评论

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

Android面试(二)

我就感觉到快

基础不牢,地动山摇;自学进大厂的第18天!

Java架构师迁哥

百度首届智能小程序高校大赛圆满结束:关注学生心理健康小程序获全国一等奖

DT极客

实现数字经济和实体经济深度融合

CECBC

区块链

数字货币应用从C端走向B端 实践中这些难题仍需关注

CECBC

数字货币

从烟酒茶说系统化学习

张老蔫

28天写作

直播预告丨NLP领域的2020年大事记及2021展望

京东科技开发者

机器学习 AI nlp

​Kubernetes资源清单篇:如何创建资源?​

xcbeyond

Kubernetes 28天写作 Kubernetes从入门到精通

技术分享 | 漫谈音视频中的拥塞控制

拍乐云Pano

【盘点2020】机房网络性能哪家强?年度冠军揭晓

博睿数据

机房 评测

【我给面试官画饼】软件测试理论基础、质量保证常见面试题——会被面试官赶出来吗?

程序员阿沐

面试 软件测试 测试工程师 质量保证

观看辽篮比赛,思考团队管理——关于团队的灵魂拷问,你中了几个?

伯薇

团队管理 团队建设 团队 赋能 激励

阿里开源SpringSecurity:用户+案例+认证+框架

996小迁

Java 程序员 架构 面试 springsecurity

关于JDK15的简单理解

Java架构师迁哥

客户服务高触达,零代码从短信/邮件跳转小程序客服

环信

Soul网关源码阅读(八)路由匹配初探

Java 源码阅读 网关

你kin你擦!阿里终于肯把内部高并发编程高阶笔记开源出来了

Java架构之路

Java 程序员 架构 面试 编程语言

跨界融合,区块链推动实体经济提档升级

CECBC

人工智能 云计算 大数据

基于Prometheus+Grafana打造企业级Flink监控系统

王知无

大数据 flink 监控

京东架构师分享的 Redis学习笔记手抄版;

Java架构师迁哥

企业短信服务质量与用户体验如何监控?短信监测技术震撼来袭

博睿数据

短信 数据监测

HDFS中的常用压缩算法及区别

王知无

大数据 hdfs

胜天半子!阿里内部力荐SpringBoot全栈笔记全网首发,源码实战齐飞

Java架构之路

Java 程序员 架构 面试 编程语言

LeetCode题解:105. 从前序与中序遍历序列构造二叉树,递归+哈希表,JavaScript,详细注释

Lee Chen

算法 大前端 LeetCode

程序员生产环境-软件篇

ITCamel

程序员 效率工具 工作效率

数据倾斜?Spark 3.0 AQE专治各种不服

王知无

大数据 spark

看懂2020年智能浪潮,我们从百度和谷歌的AI足迹出发

脑极体

AES128解密只能解一半的问题

李日盛

AES 问题定位

边缘安全 | 正确使用CDN 让你更好规避安全风险

阿里云Edge Plus

安全 CDN

永续合约APP系统软件开发

系统开发

大数据知识专栏 -MapReduce 自定义排序技术

小马哥

大数据 hadoop mapreduce 七日更

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