Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • Users
  • Groups
  • CreatiCode
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Default (No Skin)
  • No Skin
Collapse
Brand Logo

CreatiCode Scratch Forum

  1. CreatiCode Forum
  2. 知识库
  3. 小教程
  4. 三维 - 魔方(难度:2级)

三维 - 魔方(难度:2级)

Scheduled Pinned Locked Moved 小教程
1 Posts 1 Posters 1.1k Views
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • C Offline
    C Offline
    creaticodeteacher2-mail
    wrote on last edited by admin
    #1

     

    用到的相关知识

    • 创建三维场景
    • 使用变量
    • 使用变量循环
    • 使用盒子
    • 在控制台打印消息
    • 三维坐标和位置

     
     

    介绍

    在本教程,我们将制作一个魔方,预览如下:

     

    第1步 - 创建一个带三维坐标轴的“空”场景

    首先新建一个项目,删除角色1,在“空的1”角色中添加如下这些积木。积木“创建三维场景”和“显示三维坐标轴“在”三维场景“类别中。


     
    如下图所示,x轴指向右,y轴指向前(指向屏幕内),z轴指向上。你可以在舞台上拖动鼠标,使摄像头绕坐标轴旋转:

     
     

    第2步 - 添加一个盒子

    现在添加魔方的第一个盒子。在“三维物体”类别中找到积木“添加6色盒子”,然后把6个面的颜色换为自己喜欢的任意颜色。3个维度可以保持100不变。


     
    这个盒子将被添加到位置(x=0, y=0, z=0),也就是说其中心点位于三维坐标系的原点。你可以放大进行验证。

     
     

    第3步 - 在右侧再放一个盒子

    现在再添加一个盒子。要把这个盒子移到不同的位置,以免和第一个盒子重叠。
    如下所示,你可以先复制积木“添加6色盒子”,然后把新盒子的x坐标设为100。


     
    注意:尽管有2个盒子,但看起来像是一个宽盒子,因为两者之间没有缝隙。

     
     

    第4步 - 减小盒子的尺寸

    为了让盒子之间有一个小缝隙,我们可以减小盒子尺寸,还可以增加盒子之间的间距。比如,我们把盒子尺寸从100减至98:


     
    现在2个盒子之间就有了一个缝隙:

     
     

    第5步 - 添加第三个盒子

    添加第三个盒子与第二个盒子类似,就除了要放到左边,x坐标为-100:

     
     

    第6步 - 使用变量循环

    尽管非常容易像这样复制积木来添加盒子,但有更快的方式来编写这个程序。例如,我们可以用“变量循环”。
    你需要定义一个新变量“s”,然后用变量循环让s从-100走到100,步长为100。这样的话,s从-100开始,然后变为0,然后变为100。

     
    现在我们修改程序,用变量s来创建和移动盒子:

    现在我们得到了同样的结果,而程序更容易修改。例如,若要修改盒子的颜色和尺寸,只需要在一个积木中修改。

     
     

    第7步 - 3排盒子

    现在我们制作了一排3个盒子,接下来我们要制作3排(9个盒子)。这3排分别放在不同的y坐标上:-100、0、100。

    需要定义一个新变量“t”,然后添加一个新的变量循环,使t取值-100、0、100。


     
    现在我们把这个新的变量循环放到原有变量循环外面,然后用变量s和t移动盒子。

     
     

    第8步 - 打印变量x和y

    由于程序运行非常快,根本看不到程序的运行过程。你可以用一个很方便的工具来帮助你了解事件的顺序:打印日志。
    做法就是,在变量循环中添加积木“打印( )到控制台,然后添加一个积木“将( )( )( )通过( )连接”,用以读取变量x和y。

     
     

    第9步 - 3层盒子

    最后一步,我们要创建3层盒子(27个)。这3层竖着叠起来,z坐标分别为-100、0、100。
    修改方法类似,就是再加一个变量循环,使用新变量“u”。为了把盒子移到某个z坐标,你要用积木“将z设为( )”。

     
     

    第9步 - 5乘5乘5

    因为我们用的是变量循环,很容易修改变量的范围。例如,我们可以让这3个变量都从-200走到200,每个变量就取5个值(-200、-100、0、100、200)。


     
    5层魔方如下:

     
     

    创意扩展

    从这个基本的魔方项目,你可以扩展成多种形式。下面是一些创意想法:

    1. 其他形状:魔方并不一定非要用四方块,对吧?你可以尝试用其他形状,如球形、圆柱体。

    2. 随机旋转:每个盒子可以随机朝向不同的方向。添加每个盒子时,你可以用积木“旋转到x( ) y( ) z( )”进行随机旋转。

    3. 其他整体形状:除了立方形,你还可以用变量循环把盒子堆成其他形状,比如金字塔形、树形。

    1 Reply Last reply
    0

    Hello! It looks like you're interested in this conversation, but you don't have an account yet.

    Getting fed up of having to scroll through the same posts each visit? When you register for an account, you'll always come back to exactly where you were before, and choose to be notified of new replies (either via email, or push notification). You'll also be able to save bookmarks and upvote posts to show your appreciation to other community members.

    With your input, this post could be even better 💗

    Register Login
    Reply
    • Reply as topic
    Log in to reply
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes


    • Login

    • Don't have an account? Register

    • Login or register to search.
    • First post
      Last post
    0
    • Categories
    • Recent
    • Tags
    • Popular
    • Users
    • Groups
    • CreatiCode