.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 的博客中得到。
更多内容推荐
微软发布 .Net for Apache Spark :用什么语言开发大数据都可以
从今天起,你用什么语言进行数据分析都可以了:Microsoft 现已发布 .NET for Apache® Spark™ 预览版
04. 年度培训计划制定和培训项目实施
2023-10-17
07. 从草台班子到星河舰队,想象一条河流
2023-10-17
你应该学习的 20 个 Python 代码段
Python禅宗:美丽胜于丑陋,明了胜于晦涩
Entity Framework Core 2.0 的槽点
Entity Framwork(EF)一直以来毁誉参半,有些人喜欢它,不过有些人认为它与NHibernate、LINQ-to-SQL和其他小型ORM框架相比没有什么优势。EF Core在早期给人们留下糟糕的印象,也一直让那些对EF有所期待的人大失所望。
第八节 目标计划管理“三九”说明书之七——控进度
2023-10-17
Apache RocketMQ + Hudi 快速构建 Lakehouse
基于RocketMQ和Hudi零代码构建Lakehouse架构,以及RocketMQ Connector & RocketMQ Stream助力ETL数据分析,为大家提供快速构建Lakehouse的技术方案和低运维成本实现实时计算的解决方案。
2022-02-16
Ray 分布式计算框架详解
Ray 是 UC Berkeley RISELab 出品的分布式框架。为了应对 增强学习对大数据集实时计算的需求。 Ray 底层对于分布式计算的优化。尤其是采用了 Apache Arrow 的 plasma 内存数据架构性能非常优秀,Ray 的衍生项目 Modin 针对 Pandas 做了优化。值得深入研究。
2020-08-30
.NET Core 库迁移到 GitHub 的最新进展
2014年11月12日,微软宣布计划将.NET Core库迁移到GitHub上。来自微软的Immo Landwerth通过一些有深刻见解的项目数据,介绍了这一变化在项目中的最新进展情况。
Entity Framework 中的字符串插值引发担忧
将内插字符串自动地转化为参数化SQL语句,这是Entity Framework Core 2提供的一个新特性。虽然该特性从设计上是为了避免出现SQL语句编写上的问题,但是有人担心这会导致更多的SQL注入攻击。
Rodney Viana 为.NET 调试开发的 WinDbg 扩展介绍
当.NET应用程序在产品环境中发生故障的时候,通常留给开发者的仅仅是一个内存dump。因为Visual Studio不能处理dump文件,所以你必须使用一个名为WinDbg的工具。该工具通常会和SOS.dll或者Psscor4.dll一起使用,它们是能够暴露.NET特定细节的扩展。尽管非常强大,但是它们非常难于使用,因此开发者偶尔会创建自己的扩展。Rodney Viana就是这样的一个开发者,他刚刚发布了netext 1.6.1并将该项目开源。
第二节 目标计划管理“三九”说明书之一——设目标
2023-10-17
2.3 为 PPT 演示文稿应用母版
2023-10-17
06. 企业切勿追求技术片面领先,忽略市场需求
2023-10-17
各编程语言 + aardio 相互调用示例
Python .Net Java C++ PowerShell代码简单、复制可用。aardio 快速调用 C,C++,C#,Java,R,V,Python,JavaScript,Node.js,Rust,PHP,Ruby,PowerShell,Fortran,Delphi,Julia,Nim,批处理 …… 演示。
2022-09-25
Java 开发人员不得不收集的代码,精选 Java 面试真题集锦
首先上来简单做一下自我介绍?
2021-10-26
Source Generator:C# 9 将迎来编译时元编程
Source Generator是C#编译器的一个新特性,开发者可以使用编译器生成的元数据检查用户代码,并生成附加的源文件,与程序的其他部分一起编译。
只需几百行代码,利用 Ray 快速实现算法解释模型 Alibi 的线性扩展
提供大规模的模型服务只是战斗的一部分。
【数据结构】五分钟带你了解及自定义有向图
在数学中,一个图(Graph)是表示物件与物件之间的关系的方法,是图论的基本研究对象。一个图看起来是由一些小圆点(称为顶点或结点)和连结这些圆点的直线或曲线(称为边)组成的。 以下数有向图在数学中的定义: 有向图是一个二元组<V,E>,其中 1.V是非空集合
2022-09-20
取代 Python 多进程!伯克利开源分布式框架 Ray
Ray是一个用于并行计算和分布式Python开发的开源项目。本文将介绍如何使用Ray轻松构建可从笔记本电脑扩展到大型集群的应用程序。
推荐阅读
Apache Flink ML 2.2.0 发布公告
2023-04-26
02|实战:如何使用 Jupyter Notebook?
2023-11-13
致谢
2023-12-01
SLF4J 门面日志框架源码探索 | 京东云技术团队
2023-06-21
低代码 / 无代码应用赋能数字化
2023-12-07
SPL 比 SQL 更难了还是更容易了?
2022-11-07
10.1 黑屏白屏演示技巧
2023-10-17
电子书
大厂实战PPT下载
换一换 朱德江 | 蚂蚁集团 技术专家、Envoy Go 扩展 Code Owner
胡宁馨 | 英特尔 软件与先进技术事业部/首席工程师
陈鸿 | 蚂蚁集团 资深算法专家
推荐阅读
Apache Flink ML 2.2.0 发布公告
2023-04-26
02|实战:如何使用 Jupyter Notebook?
2023-11-13
致谢
2023-12-01
SLF4J 门面日志框架源码探索 | 京东云技术团队
2023-06-21
低代码 / 无代码应用赋能数字化
2023-12-07
SPL 比 SQL 更难了还是更容易了?
2022-11-07
10.1 黑屏白屏演示技巧
2023-10-17
评论