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

举报
汪子熙 发表于 2023/02/23 10:57:47 2023/02/23
【摘要】 绘制出的魔方效果如下图所示:在水平方向和 Y 方向绘制的立方体序列集合,我们前文已经叙述过了,本文主要讨论 Z 方向也就是俯视方向的立方体集合如何绘制。笔者采用的是 Z 方向驱动的绘制方法。如果要绘制一个 3 × 3 × 3 的魔方,在绘制了底面 3 × 3 的9个小立方体之后,接下来绘制 Z 方向第二排立方体,从左到右绘制,即下图黄色箭头所示的水平排。然后绘制第三排最面向我们的水平立方体集...

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

在水平方向和 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 方向的迭代计数器。

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。