当前位置:主页 > 分布式数据库 > 人工智能 >

数据库_CDN缓存内容_最新活动

在上一个博客中,你了解了我编写一个射线追踪程序(带ABAP)的动机,以及Tracer-Tobe是什么。在这个博客中,你将了解这个项目的基础设施,这些章节的内容,我读过的,加上一些C++语言的特点,ABAP中缺少的

开发环境

SAP系统运行在VirtualBox支持的虚拟机上

SAP AS ABAP NW 7.5 SP02 ASE开发版6 GB内存2个CPU200 GB硬盘opensuse42.2

我基本上遵循了以下博客中的安装说明:1、2和3

使用eclipsemars(4.5.2)和ABAP开发工具完成了编码。abapGit用于代码版本控制和共享,托管在以下位置:https://github.com/pixelbaker/ABAP-RayTracer

包装结构

包装结构模仿作者提供的最小光线跟踪器的文件夹结构,会随着每一章的增长而增长。

我特别喜欢这个项目的缩写:艺术

它不仅代表良好的SAP传统使用三个字母,这也反映了电脑生成的图像往往可以是艺术。

作为一个特殊的噱头,当客户空间Z被添加到混合,然后我们最终得到一个词"ZART",这是德国的温柔,细腻,南昌大数据,温柔。一个特别好的德语单词,如果你问我的话,我试图在书的章节中构造我的博客,"从地面开始射线追踪"。第1章:Ray Tracer设计和编程。首先,它解释了使用面向对象的编程语言,特别是C++的选择。以及本书遵循的某些编码样式。此外,它还提供了如何在以后高效调试渲染器的技巧。

第2章:一些基本数学

然后通过让您熟悉光线跟踪器所需的一些数学知识,如了解向量之间的差异,点和法线

第三章:裸体光线追踪

然后派对开始。本章帮助您了解…

光线投射是如何工作的光线的定义如何使光线与平面和球体相交一个简单的光线跟踪器的结构是如何工作的

最终你实现了一个光线跟踪器,它可以呈现任意数量的平面和球体的正交视图。

而ABAP的实现是我将不断面临的挑战,本博客的其余部分将集中于此。

关于我写光线跟踪器的探索,我是面对C++语言的特点,ABAP还没有。我需要找到一个新的解决方案,从一开始就不会把我的光线追踪器变成混乱。在我的博客中,我会通过展示我的发现和结论来经常揭示某些语言差异的明珠。不同。根据提供的参数调用适当的方法。

优点是代码更简洁。少编方法名来描述共性和差异性,比如按点(point)设置中心,按组件(i\u x=x i\u y=y)设置\u center,…当设置\u center就足够了。

由于ABAP没有这种语言特性,我需要想出一个可行的解决方法。

在下面的部分中,我将指导您找到方法的解决方案,淘客返利app,施工人员和操作人员超载。

我面临以下情况。两个同名的方法,都是通过两组不同的输入参数来设置球体的中心。

我现在要简化,把问题简化成二维圆。

我可以提出三种解决方案,都有各自的优缺点。

我们有一个定义圆的类,我们要设置这个圆的中心坐标。

一个解决方案是创建一个方法,该方法接受所有的输入参数集,并使用OPTIONAL来允许用户决定要提供哪一组。

这通常涉及到检查提供了哪一组输入参数。

用户可以进行此类调用。

编译器不会抱怨最后三个。此外,如果省略返回,则可能会用后面的输入集覆盖中心。用户很难通过查看方法签名来通过输入集掌握选择的想法。

啊,不错。只有一组输入参数。但是,嘿,我该往这里塞什么?

使用动态输入参数将涉及一些这样的代码。

您可以在其中放入任何内容。编译器不会抱怨的。只有在运行时,你才会面临公正的审判。

如果该方法得到一些文档和/或用户查看该方法,他可能会知道哪些有效的输入集是可能的。另外,set\u center必须确保正确处理不支持的类型,比如抛出异常。

好的,那么为什么不做显式操作并为每个输入集创建一个方法呢。那是你开始对方法名有创意的时候,但是当你接近神圣的30个字符的限制时,请上帝保佑你。

这个实现实际上是非常直接的,正如你所希望的。

所以,是为用户调用方法。

如果你没有提供正确的参数,编译器会大喊大叫。我看到的唯一缺点是处理各种方法名。此外,这个定义看起来有点让我觉得不舒服。这将是我在X射线追踪尝试中大部分时间所依赖的技术。它允许六种不同的方法来构造一个Vector3D实例。

与常规方法相比,个人如何建站,构造函数有点特殊,比如设置中心。特别是在这个意义上,它们被NEW或CREATE对象调用,除非你有一个大胆的计划,怎么做淘客,否则你可能会使用super->constructor()。IS提供的语句旨在找出需要调用哪个构造函数。ASSERT语句确保构造所需的所有参数都处于顶端形状。

这允许我使用关键字NEW或CREATE OBJECT,但附带了一整袋缩进。

猜你喜欢

微信公众号