写点什么

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

评论

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

长连接Netty服务内存泄漏,看我如何一步步捉“虫”解决 | 京东云技术团队

京东科技开发者

内存泄露 京东云 netty 企业号 4 月 PK 榜

MediaPlayer音频与视频的播放介绍

芯动大师

api 网关 MediaPlayer 三周年连更

线上多域名实战

越长大越悲伤

JavaScript 前端 CDN 域名

16种国际版多语言点赞抖音分享点赞任务平台网站APP源码搭建

网站,小程序,APP开发定制

ArkCompiler开发

坚果

OpenHarmony 三周年连更

跨平台应用开发进阶(五十四):Android APP调试工具:ADB

No Silver Bullet

android adb 跨平台应用开发 三周年连更 APP调试工具

Image Search-这是你的图像搜索

六月的雨在InfoQ

OSS 图像搜索 三周年连更 Image Search

IPv6协议转换技术

穿过生命散发芬芳

ipv6 三周年连更

Orillusion荣获SegmentFault AIGC Hackathon 2023 线上黑客马拉松赛二等奖&最佳创意奖

Orillusion

开源 元宇宙 webgpu AIGC ChatGPT

全栈开发实战|​电子商务平台的设计与实现(Spring Boot + MyBatis + Thymeleaf)

TiAmo

Spring Boot mybatis thymeleaf 全栈开发 三周年连更

Node工程的依赖包管理方式 | 京东云技术团队

京东科技开发者

JavaScript node.js 前端 京东云 企业号 4 月 PK 榜

京东小程序接入ARVR的技术方案和性能调优 | 京东云技术团队

京东科技开发者

小程序 人脸识别 京东云 企业号 4 月 PK 榜 ARVR

SpringBoot之如何实现热部署|超级详细,建议收藏

bug菌

Spring Boot 热部署 三周年连更

算法题每日一练:全排列

知心宝贝

数据结构 算法 前端 后端 三周年连更

100个Python实战项目(十三)使用 Tkinter GUI 库构建闹钟应用程序

海拥(haiyong.site)

三周年连更

玩转Redis|学会这10点让你分分钟拿下Redis,满足你的一切疑问

浅羽技术

Java 数据库 redis 缓存 三周年连更

Unity 之 超级实用的小技巧

陈言必行

Unity 三周年连更

「Go框架」深入理解gin框中Context的Request和Writer对象

Go学堂

golang 开源 程序员 个人提升

如何真正“不花一分钱”部署一个属于你的大模型

Zhendong

人工智能 PyTorch ChatGPT

使用 buildx 构建跨平台镜像

江湖十年

Docker docker build Docker 镜像

为啥运维人员更喜欢 NeoVim 而不是 Vim?这8个原因或许是答案,命令对比一目了然!

wljslmz

Linux 运维 三周年连更

Android C++系列:数组在函数中注意事项

轻口味

c++ android 三周年连更

.gitignore 详解

程序员海军

三周年连更

App复杂动画实现——Rive保姆级教程 | 京东云技术团队

京东科技开发者

京东云 企业号 4 月 PK 榜 rive

HTTP协议中Via的用法

阿泽🧸

三周年连更 via

申请chatGPT账号

石云升

AI ChatGPT 三周年连更

一文读懂Redis哨兵

京茶吉鹿

数据库 nosql redis哨兵

Vue 实现图片监听鼠标滑轮滚动实现图片缩小放大功能

肥晨

js 特效 三周年连更

如何使用 go-micro 写微服务应用

宇宙之一粟

Go 微服务 三周年连更

如何在 Java 8 中使用 Streams?结合多种案例剖析学习!

Java架构历程

三周年连更

《皮囊》

后台技术汇

三周年连更

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