首页 > 编程语言 >使用 Kitten 编程猫绘制一个魔方

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

时间:2023-02-18 21:00:58浏览次数:32  
标签:魔方 编程 方向 循环 所示 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 方向的迭代计数器。

标签:魔方,编程,方向,循环,所示,Kitten,立方体,绘制
From: https://www.cnblogs.com/sap-jerry/p/17133583.html

相关文章

  • 如何在 Kitten 里绘制两个相邻的正方体并响应用户输入事件
    效果:按键盘的上下箭头,可以对正方体的棱长进行缩放。按键盘的左右箭头,可以对最上面的面的倾斜角度进行调整。按住键盘1,2,可以对正方体的斜边长度进行调整。实现原理......
  • Kitten 动态绘制 Y 轴方向立方体的实现方法
    我们之前的实践里,已经探讨了在水平方向动态绘制立方体的积木搭建方法,如下图所示:接下来我们期望在Y轴方向也绘制立方体,如下图所示。其实只需要在水平方向依次绘制两列......
  • 使用 Kitten 编程猫绘制一个 Y 方向平铺的立方体集合
    效果如下图所示:我们实际上使用了2D来模拟3D效果。应用程序启动时,默认只绘制一个立方体,因此我们在初始绘制的函数里,只执行动态绘制X方向的立方体这一个逻辑。因为默......
  • CUDA 教程(一) GPU 编程概述和 CUDA 环境搭建
    前言 本文将带大家了解CUDA编程,学习使用C和Python调用CUDA编程接口,对模型进行推理加速,性能优化。我们将从底层原理开始,带大家了解CUDA的工作机制,一步步掌握CUDA编程。相......
  • MyBatisPlus---DQL编程控制
    MP将书写复杂的SQL查询条件进行了封装,使用编程的形式完成查询条件的组合。一、条件查询packagecom.itheima;importcom.baomidou.mybatisplus.core.conditions.Wrapp......
  • vue2 - router-link 的replace属性与push属性,编程式路由导航,路由的缓存
    1.router-link的replace属性与push属性//替换游览器历史记录游览器没有记录<router-linkreplace...></router-link>//追加游览器历史记录游览器有记录<router-l......
  • Windows黑客编程之运行单一实例
    描述学习了下windows编程的知识,写了一个用于判断系统中只有一个进程的demo预备知识句柄win32api中定义了多种句柄,本质上是指针,用于访问线程、文件、图片等系统资源......
  • NETDMIS5.0高级编程之赋值常量2023
    给定义的变量赋值路径:【编程系统】→【高级指令】→【变量赋值】赋值语句用于定义变量,即把一个常量或者表达式赋值于变量,同时完成变量的定义。附:PROBE_A:测头座A......
  • NETDMIS5.0脱机编程之模拟采点2023
    “模拟采点”只有在这种模式下才可以在数模上采集测量元素,多用于脱机编程手动在数模上取点。鼠标采点:脱机手操器采点,点击该按钮后,在模型的面元素上任意位置点击左键即......
  • 【编程基础之Python】5、安装Python第三方模块
    (【编程基础之Python】5、安装Python第三方模块)安装Python第三方模块为什么需要安装第三方模块Python具有很强的可扩展性,它不是把所有功能特性都集中到语言核心,而是提供......