97影院理论午夜伦不卡,72式性无遮挡免费视频,国产麻豆精品av在线观看,亚洲欧洲精品专线,亚洲+激情+专区

歡迎來到培訓無憂網(wǎng)!

全國切換

咨詢熱線 400-001-5729

位置:培訓無憂網(wǎng) > 新聞資訊 > 青少兒培訓 > 少兒編程 >  用scratch制作3d投影的步驟

用scratch制作3d投影的步驟

來源:培訓無憂網(wǎng) 發(fā)布人:裴裴

2022-11-21 20:29:32|已瀏覽:2075次

用scratch制作3d投影的步驟

用scratch制作3d投影的步驟

用scratch制作3d投影的步驟第一步:在“造型”里將思思兔的造型圖片按照方向一一對應,動作越復雜,所需圖片越多。

用scratch制作3d投影的步驟第二步:設置思思兔的朝向、大小、位置。

用scratch制作3d投影的步驟第三步:設置重復執(zhí)行動畫。

第四步:見證奇跡的時刻,運行腳本,注意腳本命令之間不要有斷層。

用scratch實現(xiàn)3D動畫的方法

1. 坐標

接觸過scratch的同學對于2D坐標已經(jīng)非常熟悉:一個物體的x坐標代表它在屏幕左右方向的位置,y坐標代表它在上下方向的位置。Scratch規(guī)定了舞臺的坐標范圍分別是:x坐標范圍在-240到240,y坐標范圍在-180到180。

3D坐標系增加了一個z軸,其實就是2D坐標在縱深方向的擴展。紅色直線代表x、y、z軸,黑色點的坐標(x,y,z)代表了它在三維立體空間中的位置。

在scratch的2D舞臺上畫一個四邊形,我們需要知道四個頂點的坐標,然后把它們連線就可以畫出來。同樣道理,如果要在3D空間中畫出一個物體,一個方法是知道它的所有頂點的坐標,然后把頂點用直線連起來。比如下面這個立方體,把它的8個頂點連起來就能畫出來。

事實上,最復雜的3D圖案和最真實的3D動畫,背后都是通過這種方法畫出來。當然畫面細節(jié)越豐富,背后的數(shù)學模型越復雜,也需要越多的計算機資源(CPU、內(nèi)存、顯卡)。作為入門介紹,本文只用最基本的3D圖形作為例子。

比如下面這個八面體,它有6個頂點,上半部分和下半部分分別有四個三角形。它是最簡單的可以一筆畫出來的多面體(上面的立方體就不能一筆畫出來,而八面體可以,同學們可以思考一下為什么),比如依次連接點1-6-2-5-3-6-4-5-1-2-3-4-1就可以不重復任一條邊把它畫出來。

簡單來說,只要我們知道了八面體的6個頂點的3D坐標,我們就能一筆過把它畫出來。

2. 投射

計算機屏幕是一個2D的平面,我們通過屏幕看到的3D物體,實際上是它根據(jù)透視原理在屏幕上的一個2D投射。

原理:視點代表了觀察者(眼睛或者攝像頭)的位置。藍色是一個3D物體,紅色平面代表了屏幕。綠色部分就是3D物體在屏幕上的投射。在屏幕上顯示一個3D物體,其實是顯示它在2D平面上的投射(綠色部分)。

在屏幕上看到的一個3D物體的大小和形狀,其實跟以下幾個因素有關:3D物體的實際位置、視點的位置、屏幕的位置。

那3D空間某一個點投射在某個2D屏幕上的坐標是怎么計算的呢?

P代表3D空間中的一個點,設它的位置坐標值是x,y,z,F(xiàn)在要計算的是它在紅色的代表屏幕的平面上的投射點P’的坐標值。其中O點代表視點。

兩次強調(diào),3D點的投射除了和它本身的坐標有關之外,還和視點位置、投射屏幕位置有關。這三個因素是互相影響的。忽略了任何一個因素都不能得出投射點坐標!

綠色平面代表P經(jīng)過的、和紅色屏幕平面平行的一個平面。線段OAB和紅色以及綠色平面都垂直。為了方便計算,我們讓紅色平面與x軸和y軸組成的平面平行。這樣,線段OAB和z軸平行(并垂直于紅色及綠色平面);線段BC以及AC’與x軸平行;線段PC以及P’C’與y軸平行。

因為BC與AC’平行、PC與P’C’平行。根據(jù)相似三角形的特點,我們很容易知道:

OA /OB = AC’ / BC = P’C’ / PC

所以,如果知道:

P點坐標x,y,z

O點坐標ox,oy,oz

紅色平面的z坐標值pz

則:

OA = pz – oz

OB = z – oz

BC = x – ox

PC = y – oy

則P在紅色屏幕平面投射點P’的x、y軸坐標值為:

P’的x坐標 =

ox + AC’ =

ox + [(pz – oz) * (x - ox)/(z - oz)]

P’的y坐標 =

oy + P’C’ =

oy + [(pz - oz) * (y - oy)/(z - oz)]

接下來我們就用這個結(jié)論在scratch里畫出一個3D的八面體來。

我們要做的就是把3D物體在2D屏幕上的投射畫出來。所以在畫(編程)之前我們先要在自己心中有一個3D坐標,視點的位置、屏幕的位置、物體的位置我們都要先想清楚。

八面體有6個頂點,依次連接點1-6-2-5-3-6-4-5-1-2-3-4-1就可以一筆過畫出它來;

- 首先我們用三個數(shù)組分別保存八面體6個頂點的x坐標、y坐標和z坐標;

- 定義視點及投射屏幕平面的位置(前面說過,為了方便計算,我們讓投射平面與x軸和y軸組成的平面平行,所以投射面只有一個z值);

- 根據(jù)前面3D到2D屏幕的投射公式,自定義一個積木用來投射轉(zhuǎn)換;

- 接下來就依次投射1-6-2-5-3-6-4-5-1-2-3-4-1點,用畫筆畫出連接各點的軌跡。

執(zhí)行“投射八面體“積木就可以畫出下面的形狀:

3. 移動

物體移動只需要改變它所有頂點的x,y,z值,然后再重新投射一次就可以了。

注意這里物體的移動是在原3D空間的移動,所以物體在x軸方向或y軸方向移動后,在屏幕上的投射會產(chǎn)生一定的旋轉(zhuǎn)效果。視點離投射平面越近,這種旋轉(zhuǎn)效果越明顯。

物體在z軸方向的移動會產(chǎn)生物體大小變化的視覺效果:物體遠離視點時物體投射縮小,接近視點時物體投射增大。

4. 旋轉(zhuǎn)

物體旋轉(zhuǎn)涉及到三角函數(shù)的知識。推導過程需要一定的篇幅。我們只需要記住簡單的結(jié)論來應用就可以了。

旋轉(zhuǎn)可以分為三種:沿x軸的旋轉(zhuǎn)、沿y軸的旋轉(zhuǎn)和沿z軸的旋轉(zhuǎn)。

- 沿x軸旋轉(zhuǎn)時,物體的x坐標不變,y坐標和z坐標的變換規(guī)律是(A為旋轉(zhuǎn)角度):

新的y坐標 = y * cos A + z * sin A;

新的z坐標 = z * cos A – y * sin A。

- 沿y軸旋轉(zhuǎn)時,物體的y坐標不變,x坐標和z坐標的變換規(guī)律是(A為旋轉(zhuǎn)角度):

新的x坐標 = x * cos A – z * sin A;

新的z坐標 = x * sin A + z * sin A。

- 沿z軸旋轉(zhuǎn)時,物體的z坐標不變,x坐標和y坐標的變換規(guī)律是(A為旋轉(zhuǎn)角度):

新的x坐標 = x * cos A – y * sin A;

新的y坐標 = x * sin A + y * cos A。

顯示了沿z軸旋轉(zhuǎn)時的變換情況。有興趣的同學可以自己推導出坐標的變換規(guī)律。

注意上面說的坐標變化都是物體原3D坐標的變化,而不是投射在2D平面上的投射坐標的變化。換言之,旋轉(zhuǎn)改變物體坐標后,還要重新計算投射坐標。


      注:尊重原創(chuàng)文章,轉(zhuǎn)載請注明出處和鏈接 http://www.wg4j.cn/news-id-70035.html 違者必究!部分文章來源于網(wǎng)絡由培訓無憂網(wǎng)編輯部人員整理發(fā)布,內(nèi)容真實性請自行核實或聯(lián)系我們,了解更多相關資訊請關注少兒編程頻道查看更多,了解相關專業(yè)課程信息您可在線咨詢也可免費申請試課。關注官方微信了解更多:150 3333 6050

留下你的信息,課程顧問老師會一對一幫助你規(guī)劃更適合你的專業(yè)課程!
  • 姓名:

  • 手機:

  • 地區(qū):

  • 想學什么:

  • 培訓無憂網(wǎng)
免 費 申 請 試 聽
提交申請,《培訓無憂網(wǎng)》課程顧問老師會一對一幫助你規(guī)劃更適合你的專業(yè)課程!