使用 Kitten 编程猫绘制一个魔方

绘制出的魔方效果如下图所示:

在水平方向和 Y 方向绘制的立方体序列集合,我们前文已经叙述过了,本文主要讨论 Z 方向也就是俯视方向的立方体集合如何绘制。

笔者采用的是 Z 方向驱动的绘制方法。如果要绘制一个 3 × 3 × 3 的魔方,在绘制了底面 3 × 3 的9个小立方体之后,接下来绘制 Z 方向第二排立方体,从左到右绘制,即下图黄色箭头所示的水平排。

然后绘制第三排最面向我们的水平立方体集合,即上图蓝色→所代表的三列,然后是数字5和6代表的两列,总共6列,18个立方体。

以上就是 Z 方向驱动的工作原理。实现函数如下图所示:

以3阶魔方为例,最外层循环执行两次。第一次循环绘制上图黄色箭头。

移植当前行水平位置起点,这个函数是为了Z轴立方体绘制而设计的。

在这里如果将移动的步长增加一个偏移量,就可以模拟 Z 方向的拆分效果。

如下图所示:

该函数的目的还是为了得出 X 方向立方体顶点的 X 和 Y 坐标。

然后在这一轮的 Z 方向循环体内,引入一个嵌套的循环,在嵌套循环里,将这一层 Y 方向的立方体全部绘制完毕:

从内层循环的移动斜边长度积木,我们就能知道这个积木的作用是沿着斜边不断移动正方体初始顶点的 X 和 Y 坐标,从而完成当前这一层(z方向)的所有立方体绘制。

每次内层循环结束后,更新 Y 方向的迭代计数器。
每次外层循环结束后,更新 Z 方向的迭代计数器。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

汪子熙

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值