<form id="hz9zz"></form>
  • <form id="hz9zz"></form>

      <nobr id="hz9zz"></nobr>

      <form id="hz9zz"></form>

    1. 明輝手游網中心:是一個免費提供流行視頻軟件教程、在線學習分享的學習平臺!

      擠壓造型Extrusion的節點說明與應用案例

      [摘要]擠壓造型Extrusion的節點說明和應用實例----------------------------1。擠壓造型的節點說明:Extrusion節點 Extrusion spine [0 0 0,0 1 0] # MFVec3f crossSection [1 1,1 -1,-...

      擠壓造型Extrusion的節點說明和應用實例
      ----------------------------
      1。擠壓造型的節點說明:
      Extrusion節點
       
      Extrusion
      {  
          spine [0 0 0,0 1 0] # MFVec3f
          crossSection [1 1,1 -1,-1 -1,-1 1,1 1] # MFVec2f
          scale [1 1] # MFVec2f
          orientation  [0 0 1 0] # MFRotation
          beginCap  TRUE # SFBool
          endCap TRUE # SFBool
          ccw TRUE # SFBool
          solid TRUE # SFBool
          convex TRUE # SFBool
          creaseAngle 0 # SFFloat
      }  
       
      <域>:
      spine 該域定義龍骨折線,包括一系列三維點,依次連接相鄰點就得到一條折線。該域的

      坐標在節點的局坐標系上定義。

      crossSection 定義二維折線,包括一系列二維的坐標,依次連接相鄰坐標點就得到一條

      分段線性折線。該則先在節點的局部坐表系xz平面中定義,二維的坐標的第一個數是x坐

      標,另一個是z坐標。
      /*我們重點關心上面兩個域*/

      scale 該城定義二維折線的尺度縮放變換參數。在節點局部坐標系的XZ平面內,尺度變

      換以平面的坐標原點為參照點,值的第一個數對應X軸的變換,第二個數對應Z軸。尺度變

      換參數值必須大于零。一般該域值的個數與spine域一樣,順序對應著每個龍骨構造點處

      的二維拆線的尺度變換。如果該城只指定了一個值,每一處的二維折線都使用這個值進行

      變換。 

      orientation  該域定義三維旋轉變換參數。一般該域值的個數與SPine域一樣,順序對應

      著每個龍骨構造點處的二維折線的旋轉變換。如果該域只指定了一個值,每一處的二維折

      線都使用這個值進行變換。注意這個旋轉變換并不在節點的局部坐標系上定義,而在對應

      每個龍骨構造點處的一個特殊的構造點坐標系上進行。 

      beginCap  該域說明延伸體是否有起始端面(對應龍骨中第一個構造點)。如果

      beginCap= FALSE,則不產生起始端面,否則,起始端面是將crossSection域中的二維折

      線首尾相連構成的多邊形,處于龍骨第一個構造點坐標系的xz平面。
       
      endCap 該域說明延伸體是否有終止端面(對應龍骨中最后一個構造點)。如果endCap=

      FALSE,則不產生終止端面,否則,終止端面是將crossSection域中的二維折線首尾相連

      構成的多邊形,處于龍骨最后一個構造點坐標系的xz平面。 

      ccw Extlusion節點自動生成幾何面的法線,該域決定法線方向與二維折線走向的關系。

      當cow=TRUE時,二維折線走向(由折點定義的順序指定)、龍骨走向(由龍骨構造點定

      義的順序指定)與法線方向應成右手關系;反之,當cow=FALSE時,二維折線走向、龍骨

      走向與法線方向應成左手關系。如果域solid=TRUE,只有逆著法線方向觀察,才可以看到

      幾何面。 

      solid 對于一個幾何體的面,法線方向的表面被認為是“外”表面,與此相反的是“內”

      表面, 當solid域為TRUE時,只顯示“外”表面,“內”表面并不顯示著色。當幾何體是

      閉合的時候,該域用于瀏覽器實現優化。如果solid= FALSE,則意味著“內”、“外”表

      面都要顯示,瀏覽器必須計算兩個表面,這時如果使用質材,面上的某點在兩個表面使用

      質材圖像上的同一像點。 

      convex 該域告訴測覽器幾何體是否為一個完全的凸面體。如果不能確定,該域應該設為

      FALSE。convex域用于測覽器實現優化。 

      creaseAngle 該域影響瀏覽器對幾何體相鄰表面之間棱的處理。creaseAngle指定一個大

      于0的角度值(弧度),如果相鄰表面法線之間的夾角的絕對值小于這一角度,創覽器對

      相鄰表面做平滑處理,棱不能被明顯地察覺到。該域通常用于生成光滑的表面。
       
      <事件>:
      Set-SPine eventIn   MFVc3f             設置spine路徑的值。 
      Set-CrossSection eventIn   MFVec2f     設置crossSection路徑的值。 
      set-scale eventIn   MFVec2f            設置scale的值。
      set-orientation  eventIn   MFRotation  設置orientation的值
       
      <說明>:
          ExtruSion節點為描述多種形狀的形體提供了一種有效和直接的方式,那些可以用ZD

      截面圖形經在空間中沿某一路徑移動而形成的形體均可采用此方式。

          crossSection域描述了一個x-z平面上的2D準形截面。將crossSection的拷貝放在每

      個spine路徑的連接處,按照scale、orientation域的值進行縮放或旋轉,然后將相鄰連

      接處的交叉部分的相應頂點連接起來形成物體的側面。如果beginCap endCap已被說明,

      適當的平面多邊形端帽(caps)便可被加在所構建形體的末端。

      ------------------------
      2。vrml代碼如下:

      #VRML V2.0 utf8

      #用戶視角
      Viewpoint
      {
              position 0 4 10
              description "Look"
      }
      #背景
      Background
      {
              skyColor
              [
                  0.0 0.2 0.7,
                  0.0 0.5 1.0,
                  1.0 1.0 1.0
              ]
              skyAngle [1.309,1.571]
      }
      Group
      {
              children
              [
                      DEF Body Transform #螺絲紋,擠壓造型
                      {
                              children Shape
                              {
                                      appearance DEF DColor Appearance
                                      {
                                              material Material
                                              {
                                                      diffuseColor .2 .1 .32
                                                      specularColor .31 .388 .388
                                                      ambientIntensity .07
                                                      shininess 1
                                              }
                                      }
                                      geometry DEF Whorl Extrusion
                                      {
                                              crossSection
                                              [
                                                      0.05 0,0 0.08,-0.05 0,0.05 0
                                              ]
                                              spine [ ]
                                              scale [ ]
                                              beginCap TRUE
                                              endCap TRUE                    
                                              solid TRUE
                                      }
                              }
                      }, # end Body
                      DEF Top Transform #釘子帽,圓柱
                      {
                              translation 0 5.05 0
                              children Shape
                              {
                                      appearance USE DColor
                                      geometry Cylinder
                                      {
                                              radius 0.5
                                              height 0.1
                                      }
                              }
                      },
                      Transform #釘子的身子,圓錐
                      {
                              translation 0 2.5 0
                              rotation 1 0 0 3.14
                              children Shape
                              {
                                      appearance USE DColor
                                      geometry Cone
                                      {
                                              bottomRadius 0.25
                                              height 5
                                              side TRUE
                                      }
                              }
                      },
                      DEF myScript Script
                      {
                              field SFFloat a 0.01
                              eventOut MFVec3f spin_changed
                              eventOut MFVec2f scal_changed

                              url "vrmlscript:
                              function initialize()
                              {
                                      y_add = 0;          //Y方向上的增量
                                      cent = Math.PI/16;  //螺旋時的角度的增量
                                      angle = 0.0;
                                      sc = 0;             //縮放比例
                                      N = 64 * 5;
         
                                      for(i = 0; i < N - 20; i++)
                                      {
                                              b = angle / (64*Math.PI);
                                              part_x = b * Math.cos(angle);
                                              part_z = - b * Math.sin(angle);

                                              /*spin就是一個多邊形逼近形成的圓,Y上加

                                               上增量,就形成了螺旋上升的造型。*/
                                             spin_changed[i] = new SFVec3f(part_x,  y_add, part_z);
                                              scal_changed[i] = new SFVec2f(sc,sc);
                                              angle += cent;
                                              y_add += 1 / 64;
                                              sc += 0.01;
                                      }
                              }"
                      }
              ]
              ROUTE myScript.spin_changed TO Whorl.set_spine
              ROUTE myScript.scal_changed TO Whorl.set_scale
      }

      3。解釋
      crossSection [] 就是一個在x-z平面上的封閉圖形,例子中是一個三角形;
      spine [ ] 是crossSection的圖形拉動的軌跡,(x,y,z)三維坐標形成的一個數組
      scale [ ] 造型在各個spine點的縮放比例。

      其實只要高中的立體幾何學會了,擠壓造型理解起來就是小菜一碟。





      日韩精品一区二区三区高清