头图

Kitten 动态绘制 Y 轴方向立方体的实现方法

我们之前的实践里,已经探讨了在水平方向动态绘制立方体的积木搭建方法,如下图所示:

接下来我们期望在 Y 轴方向也绘制立方体,如下图所示。

其实只需要在水平方向依次绘制两列立方体就可以了。这两列立方体的初始顶点,我已经用黑色高亮了。

首先我有一个绘制立方体的函数,这个函数里绘制两个正方形,分别是正方体面对我们那个面和背对我们的面,然后绘制四个斜面。

这个函数的调用前提,是 x 方向动态立方体的 x 坐标已经设定好。这个坐标每绘制一个立方体之后,就会在循环里递增,步长是正方体棱长。

x 方向动态立方体的 x 坐标,初始值为 X 方向立方体顶点 X 坐标,这个坐标是在循环体外部计算的,公式如下。

在 Y 方向绘制一排新的立方体,关键是要找到第一个立方体的起始顶点的 X 和 Y 坐标。

我每次动态绘制 X 方向的立方体时,都会将计算好的第一个立方体的顶点,存储到变量起点X 和起点 Y 里,以备后续使用。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-3Rx4NW59-1675827193236)(null)]

这样,在绘制 Y 方向立方体时,我重新回到起点 X 和 Y,然后调整旋转角度,移动到斜边的另一个顶点,此时这个顶点的 X 和 Y 坐标,就是新的一排待绘制的立方体的初始X 和 Y 坐标。

换言之,调用从左到右绘制全部立方体函数之前,必须保证起点的 X 和 Y 坐标被成功计算出来才行,后者又依赖变量起点 X 和 Y。


Jerry Wang的SAP技术专栏
SAP成都研究院开发专家,SAP社区导师,SAP中国技术大使
914 声望
1.6k 粉丝
0 条评论
推荐阅读
线性表的顺序存储和链式存储
在计算机科学中,线性表是一种常见的数据结构,用于存储一组具有顺序关系的元素。线性表中的元素之间存在一对一的前驱和后继关系,每个元素都有唯一的前驱和后继(除了首元素和末元素)。线性表可以通过顺序存储...

JerryWang_汪子熙

封面图
TypeScript 与 JavaScript:你应该知道的区别
正在寻找经验丰富的 JavaScript 开发团队来将您的应用创意变为现实?作为一名开发人员,如果您有机会参与 Web 开发项目,您一定了解 JavaScript 的工作原理。JavaScript 上市多年,已成为开发者社区中流行的脚本...

京东云开发者1阅读 511

Python实战:用Selenium爬取网页数据
网络爬虫是Python编程中一个非常有用的技巧,它可以让您自动获取网页上的数据。在本文中,我们将介绍如何使用Selenium库来爬取网页数据,特别是那些需要模拟用户交互的动态网页。

小小张说故事阅读 798

封面图
Office自带 插入数学公式 快捷键
MathType是常用的office数学公式编辑工具,虽然使用简单,但是编写数学公式速度很慢。使用office自带的编写数学公式工具的快捷键就很快,而且这里介绍的快捷键几乎可以解决所有可能遇到的数学公式问题,关键在于...

DuDo阅读 751

Cloud Studio 一个好用的在线编程工具
Cloud Studio 是一个可咸可甜、可分工可协作,无论高端玩家、新手入门、编程学习皆适用的在线编程工具。使用时无需额外安装,打开浏览器,便能随时随地在线编程,妈妈再也不用担心我电脑没电、网线被拔啦!除了包...

CODING1阅读 335

封面图
前端开发之函数式编程实践 | 京东云技术团队
作者:京东科技 牛志伟函数式编程简介常见应用场景1、ES6中的map、filter、reduce等函数 {代码...} 2、React类组件 -> 函数式组件+hooks、Vue3中的组合式API3、RxJS、Lodash和Ramda等JS库4、中间件/插件,如Re...

京东云开发者1阅读 287

封面图
【牛客小白月赛70】A-F题解【小d和超级泡泡堂】【小d和孤独的区间】【小d的博弈】【小d和送外卖】
🎈 作者:Eriktse🎈 简介:19岁,211计算机在读,现役ACM银牌选手🏆力争以通俗易懂的方式讲解算法!❤️欢迎关注我,一起交流C++/Python算法。(优质好文持续更新中……)🚀🎈 阅读原文获得更好阅读体验:[链接]

Eriktse阅读 533

914 声望
1.6k 粉丝
宣传栏