2016-11-07 6 views
0

私はMayaviを使用して暗黙の3Dサーフェスをプロットし、それらのサーフェスを1つのプロットに結合したいと思います。しかし、私はこれを行うとき、私はこのような類似した何かを得る:Mayaviは2つの暗黙の3Dサーフェスを結合します

enter image description here

私が使用していますコード:

import numpy as np 
from mayavi import mlab 

A=0.24639243776 
B=5.39100472027e-17 
C=1.71555149594 
D=1.72967325617 
E=7.50535440036 
F=-1.17072847143 
G=1.0 

x, y, z = np.ogrid[-3:1:100j, -10:1:100j, 0:3:100j] 

def Fun (x,y,z, A,B,C,D,E,F,G): 
    F1 = (x - A + y - B)/2 + np.sqrt(((x - A - y + B)/2) ** 2 + C * z ** 2) 
    F2 = np.sqrt(x*((F*y)/2 + (E*x)/D) + y*((F*x)/2 + (D*y)/E) + G*z**2) - np.sqrt(D*E) 
    F1 [F1 < 0] = F2 [F1 < 0] 
    return F1 

Fu = Fun (x,y,z,A,B,C,D,E,F,G) 

mlab.contour3d(Fu, contours = [0]) 
mlab.show() 

を問題は、私はそれを表面のいずれかを実行どんなにがあるということです非常に低いポリ!私は、Mathematicaで同じプロットしていたし、それは完璧なプロットを作成:Mathematicaは、市販品であるとして

enter image description here

私は同じ品質のプロットを得ることを期待しないでください。しかし、少なくとも私は両面が滑らかであることを望んでいます。

Mayaviがタスクに適したツールではない場合は、希望の結果を得るためにMayaviを別のものにすることをお勧めします。

ありがとうございます!

答えて

0

私はそれを理解しました。重要な点は、サーフェスを「なし」に設定してトリムすることです。次に、他のサーフェスを同じ方法で描画することができます。

enter image description here

:さらにスケール、X、Yに従ってプロットされるべき表面のために、Zもcontour3d

import numpy as np 
from mayavi import mlab 

A=0.24639243776 
B=5.39100472027e-17 
C=1.71555149594 
D=1.72967325617 
E=7.50535440036 
F=-1.17072847143 
G=1.0 

x, y, z = np.mgrid[-3:1:300j, -10:1:300j, 0:3:300j] 

def Fun1 (x,y,z, A,B,C,D,E,F,G): 
    F1 = (x - A + y - B)/2 + np.sqrt(((x - A - y + B)/2) ** 2 + C * z ** 2) 
    F2 = np.sqrt(x*((F*y)/2 + (E*x)/D) + y*((F*x)/2 + (D*y)/E) + G*z**2) - np.sqrt(D*E) 
    F1 [F2 > 0.0] = None 
    return F1 


def Fun2 (x,y,z, A,B,C,D,E,F,G): 
    F1 = (x - A + y - B)/2 + np.sqrt(((x - A - y + B)/2) ** 2 + C * z ** 2) 
    F2 = np.sqrt(x*((F*y)/2 + (E*x)/D) + y*((F*x)/2 + (D*y)/E) + G*z**2) - np.sqrt(D*E) 
    F2 [F1 > 0.0] = None 
    return F2 

Fu1 = Fun1 (x,y,z,A,B,C,D,E,F,G) 
Fu2 = Fun2 (x,y,z,A,B,C,D,E,F,G) 

mlab.contour3d(x,y,z,Fu1, contours = [0]) 
mlab.contour3d(x,y,z,Fu2, contours = [0]) 
mlab.show() 

そしてここに渡さなければならないことの結果であります

関連する問題