Skip to Content

C++ Builder 處理 3D 物件及動畫

3D 物件程式

參考:http://docwiki.embarcadero.com/RADStudio/Tokyo/en/FireMonkey_3D

C++ Builder 可以處理 3D 程式,主要方法簡述如下。

1. 若要能直接放 3D 物件,一開始就要選 3D Application。

2. 若不是在  3D Application 的程式中想加入 3D 的物件,要先加入 TViewport3D 元件,才能在裡面放 3D 物件。

3. 反之,如果要在 3D Application 放 2D 元件,就要先放 TLayer3D 元件,才可以在裡面放 2D 元件。

3D 物件基本設計

參考  :

http://docwiki.embarcadero.com/RADStudio/Tokyo/en/Creating_the_User_Interface_(FireMonkey_3D_Tutorial)

1. 放置物件,例如放 TCube 方塊及 TLight,Tlight 代表光的方向。

2. 物件和光源都可以調整位置,物件也有長、寬、高可調,以及三個方向可旋轉。

3. 要在物體表面貼圖,要加入這個元件 TLightMaterialSource。這個會根據光源調整亮度,如果放 TTextureMaterialSource,就不受光源影響。

4. 在 TLightMaterialSource 的 Texture 屬性載入圖檔。

5. 在 TCube 的 MaterialSource 屬性選剛剛載入圖檔的 TLightMaterialSource,就會看到貼圖的 3D 物件。

動畫效果

參考 :

http://docwiki.embarcadero.com/RADStudio/Tokyo/en/Creating_a_FireMonkey_3D_Application_with_Animation_Effects

1. 在某些屬性有像電影底片的圖案,表示可以做動畫的效果,選擇 Create New TFloatAnimation。

2. 在物件列表就可以看到 FloatAnimation1,選擇它。

3. 設定底下的屬性。

  • Duration : 4 ,表示這個動畫要花 4 秒。
  • Enabled : True,表示直接執行。
  • Interpolation : Bounce,動的過程是 "彈" 的動作。Linear 就是線性。
  • Loop : Ture,會重覆一直做。
  • StartValue : 3,初值是 3。
  • StopValue : 6,末值是 6。

因為這是設定在 Width 的位置,表示執行後,物件的寬度會在 4 秒內由 3 變成 6。變化是 "彈" 的動作,而且是連續的動畫,因為這是浮點的運算。

4. 也可以用程式來控制。例如旋轉的 Y 軸屬性沒有電影底片的圖案,無法直接設定動作,也可以用底下的程式來實現。

Cube1->AnimateFloat("RotationAngle.Y",360,2);

這表示在 2 秒內 Y 軸旋轉 360 度。

以上就是簡單的 3D 物件設計及動畫處理。

回應

發表新回應

這個欄位的內容會保密,不會公開顯示。
  • 自動將網址與電子郵件地址轉變為連結。
  • 自動斷行和分段。
  • 可使用的 HTML 標籤:<a> <address> <b> <blockquote> <br> <caption> <center> <cite> <code> <dd> <del> <div> <dl> <dt> <em> <h1> <h2> <h3> <h4> <h5> <h6> <hr> <i> <img> <ins> <li> <ol> <p> <pre> <span> <strike> <strong> <sub> <sup> <table> <tbody> <td> <th> <tr> <u> <ul>
    Allowed Style properties: background, background-attachment, background-color, background-image, background-position, background-repeat, border, border-bottom, border-bottom-color, border-bottom-style, border-bottom-width, border-collapse, border-color, border-left, border-left-color, border-left-style, border-left-width, border-right, border-right-color, border-right-style, border-right-width, border-spacing, border-style, border-top, border-top-color, border-top-style, border-top-width, border-width, bottom, caption-side, clip, color, direction, empty-cells, font, font-family, font-size, font-size-adjust, font-stretch, font-style, font-variant, font-weight, height, left, letter-spacing, line-height, list-style, list-style-image, list-style-position, list-style-type, margin, margin-bottom, margin-left, margin-right, margin-top, max-height, max-width, min-height, min-width, overflow, padding, padding-bottom, padding-left, padding-right, padding-top, right, table-layout, text-align, text-decoration, text-indent, text-transform, top, unicode-bidi, vertical-align, white-space, width, word-spacing, z-index

更多關於格式選項的資訊

CAPTCHA
驗證碼只有阿拉伯數字, 這是躲廣告用的, 麻煩你輸入了.
Image CAPTCHA
Enter the characters shown in the image.


story | about seo