成人黄色在线网站 I 国产aa免费 I 中文字幕免费高清 I 国产三级影院 I 日韩欧美三级在线观看 I 久久久国产精品麻豆a片 I 欧美与黑人午夜性猛交久久久 I 91国产精品视频在线 I 国产美女狂喷水潮在线播放 I 黄页免费网站在线观看 I 欧美日韩激情视频 I 午夜理论无码片在线观看免费 I 深夜爽爽动态图无遮无挡 I 国精产品一区一区三区有限公司杨 I 天天操天天舔天天爽 I 免费看日本黄色片 I 成人va在线 I 日韩中文字幕在线观看 I 婷婷综合网 I 97视频免费观察看 I 色月丁香 I 日韩视频一二三 I 男女黄色毛片 I 美女疯狂连续喷潮视频 I 亚洲日本va一区二区sa I 欧美日韩视频区 I 毛片网在线 I 欧美一本在线 I 少妇一级淫片免费放香蕉 I avav在线看 I 久久精品亚洲中文字幕无码网站 I 天堂av在线中文在线新版 I 电影一区 电影二区 I 色av吧 中文字幕 I 国产精品伊人色

歡迎來到培訓無憂網!

全國切換

咨詢熱線 400-001-5729

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

用scratch制作3d投影的步驟

來源:培訓無憂網 發布人:裴裴

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

用scratch制作3d投影的步驟

用scratch制作3d投影的步驟

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

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

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

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

用scratch實現3D動畫的方法

1. 坐標

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

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

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

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

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

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

2. 投射

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

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

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

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

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

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

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

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

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)]

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

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

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

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

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

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

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

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

3. 移動

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

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

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

4. 旋轉

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

旋轉可以分為三種:沿x軸的旋轉、沿y軸的旋轉和沿z軸的旋轉。

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

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

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

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

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

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

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

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

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

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

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


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

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

  • 手機:

  • 地區:

  • 想學什么:

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