2017-10-21 114 views
0

我是新來的Mayavi模塊python和somethings我不清楚。我目前設法使用triangle_mesh函數來顯示模型。問題是,我想擴大模型,所以它看起來大5倍,我不明白我該怎麼做。我試圖更新頂點數組V,但一切看起來都一樣。代碼如下。不知何故,我認爲我需要轉換包含頂點的V數組,但我無法理解如何轉換它,因此模型可能會出現5倍大。我如何在Mayavi中放大3D模型

import math 
import numpy as np 
import mayavi.mlab as mlab 
import pickle 

    # The following three lines will load the "pickled" arrays V and F from the 
    # pickle file dino.pkl. V represents the vertices of the model as Nx3 matrix, 
    # while N is the number of vertices the model consists of. F represent the 
    # faces (here triangles of the model). F is also a Nx3 matrix, while here N 
    # represents the number of the faces the model. 
    fid = open('dino.pkl', 'rb') 
    (V, F) = pickle.load(fid) 
    fid.close() 

    # a small wrapper function around mlab's triangular_mesh 
    # input are the face-vertex indices inside an (M x 3) array F 
    # and the vertices in a (N x 3) array V 
    def trimesh(F, V, new_figure=True): 
     if new_figure: 
      mlab.figure() 
      mlab.triangular_mesh(V[:,0], V[:,1] , V[:,2] , F) 
      mlab.show() 


    # small helper function that is used to visualize the coordinate axes 
    def draw_axes(): 
     mlab.points3d(1, 0, 0, 1, scale_factor=0.1, color=(1, 0, 0)) 
     mlab.points3d(0, 1, 0, 1, scale_factor=0.1, color=(0, 1, 0)) 
     mlab.points3d(0, 0, 1, 1, scale_factor=0.1, color=(0, 0, 1)) 
     mlab.plot3d([0, 1], [0, 0], [0, 0]) 
     mlab.plot3d([0, 0], [0, 1], [0, 0]) 
     mlab.plot3d([0, 0], [0, 0], [0, 1]) 


    # show dino triangle mesh 
    draw_axes() 
    trimesh(F, V) 

回答

0

我不熟悉Mayavi的,而是根據docsscale_factor參數會影響得出每個點的字形的大小;如果要更改圖的整體大小,請改爲指定extent