2016-11-24 23 views
-2

頂点の座標、円錐に沿ったベクトル(線として)を知っている場合、3次元で円錐をプロットする方法エンドポイントの座標が分かっているセグメント)、コーンの高さ、matplotlib、または他のPythonプロットモジュールの高さ?与えられたベクトルに沿って、頂点、高さ、および角度情報を持つ3D円錐を、与えられたベクトルmatplotlibでプロットする

matplotlibの暗黙的な機能をプロットする際には、何が最も役立つかと思います。

私が試したことは、点(x、y、z)のグリッドを作成し、円錐の方程式を定義し、それらのグリッド点のそれぞれが円錐の方程式を満たすかどうかを確認することですそれが正確に方程式を満たさないことを意味するかもしれません、私はそれが何らかの精度まで方程式を満たすかどうかをチェックします)。しかし、matplotlibにこの暗黙的なデータセットをどのようにプロットするのかはまだわかりません。私は方程式(x、y、zの二次および線形項を含む)をzの二次関数として書き出してみました.zを解き、xとyの点でzを使って表面プロットを実行しましたが、コーンの代わりにここで

は、私が使用するコードです:

x = np.linspace(0,100,100) 
    y = np.linspace(0,100,100) 


    z = (-4823.7 + np.sqrt(abs((4823.7**2) - (4*(-240.185)*((-5692*y) - (240.185*np.multiply(x,x)) - (240.185*np.multiply(y,y)) - 57607.26))))/np.float(2*(-240.185))) 
    #print z 
    fig = plt.figure() 
    ax = fig.add_subplot(111, projection='3d') 
    x = np.arange(-50.0, 50, 1) 
    y = np.arange(-50.0, 50, 1) 
    X, Y = np.meshgrid(x, y) 
    ax.plot_surface(X, Y, z) 

    ax.set_xlabel('X Label') 
    ax.set_ylabel('Y Label') 
    ax.set_zlabel('Z Label') 
    plt.show() 
+1

StackOverflowの上ここでは一般的なコンセンサスは、質問者が解決にいくつかの努力を表示する必要があるということです自分自身の問題。一方では、可能な解決策を探し、質問の中でそれらを参照して、あなたの問題をどれくらい解決できないかを明確に述べることを意味します。一方、それは問題を解決しようとする試みにいくつかのコードを示すことを意味します。 – ImportanceOfBeingErnest

答えて

1

はそれを試してみてください。

import numpy as np 
import matplotlib.pyplot as plt 
from mpl_toolkits.mplot3d import Axes3D 

fig = plt.figure() 
ax = fig.add_subplot(111, projection='3d') 
x = np.arange(-50.0, 50, 1) 
y = np.arange(-50.0, 50, 1) 
X, Y = np.meshgrid(x, y) 
Z = (-4823.7 + np.sqrt(abs((4823.7 ** 2) - (4 * (-240.185) * ((-5692 * Y) - (240.185 * np.multiply(X, X)) 
                   - (240.185 * np.multiply(Y, Y)) - 57607.26))))/np.float(
    2 * (-240.185))) 

ax.plot_surface(X, Y, Z) 

ax.set_xlabel('X Label') 
ax.set_ylabel('Y Label') 
ax.set_zlabel('Z Label') 
plt.show() 

enter image description here

関連する問題