2D полигон Matplotlib в 3D осях - PullRequest
       4

2D полигон Matplotlib в 3D осях

2 голосов
/ 31 октября 2010

Я использую matplotlib для построения некоторых данных в виде 2D-кривых на 3D-осях.Я использую ax = axes3d.Axes3D() для определения моих осей и ax.plot(x, y, zs='z') для построения 2D-кривых в трехмерном пространстве.

Теперь я хочу добавить что-то похожее на то, что на этой странице http://matplotlib.sourceforge.net/examples/mplot3d/polys3d_demo.html,но я хочу ввести координаты вершины.В этом примере у них есть фиксированный массив z, и они строят полигоны с вершинами (x,y), тогда как я хочу z(x) и (x,y) вершин.Кто-нибудь знает, как сделать что-то подобное?

И на самом деле мне не нужна вещь для сбора, я просто хочу построить один большой квадрат в произвольном направлении.

Я пытался простовведите координаты и используйте ax.plot():

verts = np.array([[0,0,0], [0,1,0], [1,1,1], [1,0,1], [0,0,0]])
ax.plot(verts[:,0], verts[:,1], verts[:,2], zdir='y')

, и он действительно строит квадрат, но я не могу (или не знаю, как) заполнить лицо.

1 Ответ

0 голосов
/ 29 марта 2012

Надеюсь, это то, что вы хотели! это http://oi44.tinypic.com/i5y9td.jpg

Мой прямоугольник изменится с 0 на 10. Так что МАКС = 10. Сначала я попытался определить ось между z и x. z = MAX-x был моим выбором.

А затем мне предшествовало рисовать эту ось для каждого небольшого приращения x, создавая тем самым прямоугольник. Это код:

anArray = []    
for i in range(0, 101, 1):
    z = float(i)/10        
    #print "x: ", x
    y = 10 - z
    #print "y: ", y      
    for a in range(0, 101, 1):          
        anArray.append([float(a)/10, y, z])
    #endfor                    
#endfor
verts = np.array(anArray)
ax.plot(verts[:,0],verts[:,1],verts[:,2], zdir='y')
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...