

sympyについて質問です。結果としては画像のような図を出力したいです。

[![画像の説明をここに入力](https://i.stack.imgur.com/1OGjm.png)](https://i.stack.imgur.com/1OGjm.png)

用いる式は次のようなものです。

[code]

    P = -A**2 + 2*A*D + 2*A*x*math.cos(phi_0) + 2*A*y*math.sin(phi_0) - B**2 + C**2 - D**2 - 2*D*x*math.cos(phi_0) - 2*D*y*math.sin(phi_0) - x**2 - y**2 - z**2
    
[/code]

[code]

    Q = -2*B*z
    
[/code]

[code]

    R = -2*A*B*math.cos(phi_0 - phi_02) + 2*B*D*math.cos(phi_0 - phi_02) + 2*B*x*math.cos(phi_02) + 2*B*y*math.sin(phi_02)
    
[/code]

上の三式を代入する

[code]

    theta_1 = -2*math.atan((Q + sqrt(-P**2 + Q**2 + R**2))/(P - R))
    
[/code]

これらの式の中にあるA、B、C、D、phi_0、phi_02は定数であり、値が決まっています。

[code]

    A=115、B=115、C=115、D=58
    phi_0＝(2*%pi)/3*i (i=0、１、２)
    phi_02＝(2*%pi)/3*i-(2*%pi)/3 (i=0、１、２)
    
[/code]

iが設定してあることがわかると思います。  
このiが0、1、2のそれぞれの時で計算し、その結果を合体させたいと思っています。

変数はx，y，zの３つです。

上の式で出力されるtheta_1という結果はｘｙｚの値によっては虚数になることがあります。 sqrtが使われているためです。

虚数になる場合はグラフに表示せず、theta_1が虚数にならない全てのxyzを画像のような図として出力したいです。

どのようにすればよいでしょうか？

プログラムの例やアイデアをいただきたいです。


CC BY-SA 4.0
2022-07-28T04:47:43.993
90251
2022-07-28T05:20:25.157
2022-07-28T05:20:25.157
3060
53629
question
python c sympy
sympyでの３次元グラフ表示のアイデアを求めています