2017-09-11 60 views
0

我的數據至少由30,000點,其中每一個我想被形象化爲球體創建一個球體球,所以我會看到成千上萬形成的形狀球。我試着用VRML,因爲它看起來很簡單,但因爲它包含文本波紋管,每點的重複文件變得太大了:可視化點作爲而不考慮每個點

# 'X_32228' 
Transform { 
    translation 96.0 85.0 76.0 
    children [ 
     Shape { 
      appearance Appearance { material Material {} } 
      geometry Sphere { radius 1 } 
     } 
    ] 
} 

如何創建一個球體,在複製它不同點?或者更一般,我怎麼能減小輸出文件的大小?即使它的格式不同(比如X3D)。

回答

1

您可以通過使用PROTO機制實現你想要的。從

PROTO SmallSphere [ 
    exposedField SFVec3f SmallSphere_translation 0 0 0 
] 
{ 
Transform { 
    translation IS SmallSphere_translation 
    children [ 
     Shape { 
      appearance Appearance { material Material {} } 
      geometry Sphere { radius 1 } 
     } 
    ] 
} 

上面的代碼基本上創建了一個PROTO(如在面向對象編程一類的東西)的變換,其中翻譯是可變的。然後,你必須按照以下步驟創建它的實例:

SmallSphere { SmallSphere_translation 96.0 85.0 76.0 } 
SmallSphere { SmallSphere_translation 3.0 8.0 6.0 } 
SmallSphere { SmallSphere_translation 936.0 385.0 746.0 } 

...儘可能多的,只要你想,當翻譯,你從一個實例更改爲另一個參數。如果你需要一些其他領域與實例來改變你只需要按照上面的例子。例如你想要的球的半徑是可變的,你就必須創建PROTO如下:

PROTO SmallSphere [ 
    exposedField SFVec3f SmallSphere_translation 0 0 0 
    exposedField SFFloat SmallSphere_radius 2.0 
] 
{ 
Transform { 
    translation IS SmallSphere_translation 
    children [ 
     Shape { 
      appearance Appearance { material Material {} } 
      geometry Sphere { radius IS SmallSpehere_radius } 
     } 
    ] 
} 

請注意:SmallSphere_translationSmallSphere_radius是由我選擇的名稱。您可以根據需要命名這些字段。

相關問題