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. 三维坐标和位置

三维坐标和位置

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
    CreatiCode TA 2
    wrote on last edited by admin
    #1

     

    预备知识

    • 在三维场景中添加盒子

    介绍

    默认情况下,所有我们添加到三维世界的物体都会被放置在世界的中心,原点。要把一个物体移动到不一样的位置,我们需要使用坐标。

    在一维世界里,所有东西都被放置在一条非常长的箭头——x轴线上。如果一个点是在x=50的位置,我们将会顺着轴线的方向从原点移动50步来找到那个点。如果一个点是在x=-30的位置,我们将会逆着轴线的方向从原点移动30步来找到那个点。

    https://cdncreaticodecom.b-cdn.net/scratch-gui-projects/forum/92d49b32-3b24-453c-bd4b-639919a3ac4c.gif" width="700" style="">

     
    在二维世界,我们使用两个坐标数值来代表一个点的位置。举个例子,如果一个点是在x位置=50和y位置=-30,我们将会在x和y的方向找到这两个点,然后再找到那个同时对应这两个点的点。

    https://cdncreaticodecom.b-cdn.net/scratch-gui-projects/forum/9009794f-7f9b-431a-bf38-5393a7ce6b31.gif" width="525" style="">

     
    在三维世界里,我们使用三个坐标位置。举个例子,如果一个点是在x=50,y=30,z=40,我们需要先在各自的轴线找到这三个点,然后再找到那个同时对应到这三个点的点。
     

    https://cdncreaticodecom.b-cdn.net/scratch-gui-projects/forum/f03dab43-e510-419c-9be9-fbc596f51214.gif" width="800" style="">

     

    使用运动编程积木来设定三维位置

    好消息是,这些运动编程积木在三维程序里面也可以运作良好:
     

    https://cdncreaticodecom.b-cdn.net/scratch-gui-projects/forum/9417c4ef-716f-42f0-b282-192f82b93779.png" width="700" style="">

     

    演示

    举个例子,假设我们在空白场景中添加了一个黄色盒子。它的位置会在原点。需要注意的是,这个原点代表着盒子的中心点(用蓝点来标注),是在x=0,y=0,z=0的位置。

    当我们把盒子的x位置设置成100,他的中心点会顺着x轴线的方向立刻移动100步。其他的编程积木的运作方式跟在二维程序里的运作方式相似。

     
    https://cdncreaticodecom.b-cdn.net/scratch-gui-projects/forum/b394b9df-633c-4e17-8040-431ec030de3b.gif" width="725" style="">

     

    移动到 X/Y/Z 编程积木

    我们也有一个新的编程积木来把物体移动到一个三维位置:

    https://cdncreaticodecom.b-cdn.net/scratch-gui-projects/forum/991d9f40-92c1-41b4-a577-70325309ef15.png" width="800" style="">

     

    参数

    • 用时(秒): 当这个输入框大于0时,被指定移动的物体将会用动态的方式在特定秒数内朝着被指定的三维位置滑行。

    • 等待模式: 如果把它设置成“需等待的”,那么程序将会在这个编程积木运行完毕后,再运行下一个编程积木;如把它设置成“可继续的”,那么程序将不会等待这个积木运行完毕,而是直接运行接下来的编程积木。“可继续的”选项在你想让物体长时间地运动,又想让接下来的编程积木直接运行时有非常大的用处。
       

    演示

    这是一个展示一个盒子在三秒内移动的动图的简单例:
     

    https://cdncreaticodecom.b-cdn.net/scratch-gui-projects/forum/46554d14-bb64-413d-8276-4a16937c8f35.gif" width="800" style="border-radius: 5px; border: 1px solid #29622d;">

     

    使用“位置”小工具

    有时候你需要把物体移动到一个特定的位置,但是你很难知道该使用什么位置数值来使物体移动到那里。这个时候,你可以利用位置小工具来帮助你。

    就像下图展示的一样,你可以通过点击一个有四个箭头的按钮开启或关闭位置小工具。当这个工具被开启时,你可以点击你想要移动的物体,然后你就可以看见三条轴线出现在物体的中心点。当你的鼠标悬停在其中一条轴线时,该条轴线将会被标注成黄色,然后你就可以通过拖拽它来移动物体。
     

    https://cdncreaticodecom.b-cdn.net/scratch-gui-projects/forum/4982831a-9da3-466b-ba48-c6849195939c.gif" width="500" style="border-radius: 5px; border: 1px solid #29622d;">

     
    当你在拖拽一个物体时,你可以观察到角色面板上的x/y/z位子会随着你的拖拽改变。此外,运动编程积木中的位置数值也会被改变,以便你可以在完成拖拽物体后直接使用它们。
     

    https://cdncreaticodecom.b-cdn.net/scratch-gui-projects/forum/1fb84b15-f317-4e31-84c2-54c976719b32.gif" width="1000" style="border-radius: 5px; border: 1px solid #29622d;">

     

    “最后一个添加的物体”规则

    通常,我们都会在场景中有多于一个的物体。当我们使用“移动到”编程积木时,在这个编程积木前被添加的物体将会被移动。

    举个例子,在这个程序中,第一个“移动到”编程积木将会把红色盒子移动到x=200的位置,因为红色盒子是最后一个在“移动到”编程积木前被添加到场景的物体。但是,第二个“移动到”编程积木不会移动红色盒子,而是移动蓝色盒子。

     
    https://cdncreaticodecom.b-cdn.net/scratch-gui-projects/forum/c6bba45a-993c-4bf0-8636-42bf4a6f48a2.png" width="700" style="filter: drop-shadow(0.35rem 0.35rem 0.4rem rgba(0, 0, 0, 0.5));">

     
    这个是当我们运行以上程序时的结果:

    https://cdncreaticodecom.b-cdn.net/scratch-gui-projects/forum/38a4f112-bfbc-48eb-852a-0026a734f4b1.gif" width="450" style="border-radius: 5px; border: 1px solid #29622d;">

     

    了解更多

    • 三维物体的速度
    1 Reply Last reply
    0
    • CreatiCodeI CreatiCode pinned this topic on

    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