icon 2018/12/04 [Axes3D]曲面の3Dグラフ
Axes3D を利用して、曲面を3Dグラフ化する
描画はワイヤーフレーム plot_wireframe() を利用した。
Axes3D
曲面の関数は、a*x^n + b*y^n + c とする
from mpl_toolkits.mplot3d import Axes3D
import matplotlib.pyplot as plt
import numpy as np
import sys

def calculateMesh(min_value, max_value, step):
    MESH_COUNT = 20
    x = np.arange(min_value, max_value, step)
    y = np.arange(min_value, max_value, step)
    xx, yy = np.meshgrid(np.linspace(x.min(), x.max(), MESH_COUNT), np.linspace(y.min(), y.max(), MESH_COUNT))
    #xx, yy = np.meshgrid(x, y)
    return xx, yy

def calculateVector(xx, yy, zz):
    return u(xx, yy, zz), v(xx, yy, zz), w(xx, yy, zz)

def plane(x, y, n, a, b, c):
    z = a*x**n + b*y**n + c
    return z

print('Graph: ax^n + bx^n + c')
step = 1
n = int(input('Please input n\n'))
if (n <= 0): sys.exit('invalid n!')

a, b, c = map(float, input('Please input a, b, c\n').split())
min_value, max_value = map(float, input('Please input min, max\n').split())
if (min_value >= max_value): sys.exit('invalid min, max!')

xx, yy = calculateMesh(min_value, max_value, step)
zz = plane(xx, yy, n, a, b, c)

fig = plt.figure()
ax = fig.gca(projection='3d')
ax = Axes3D(fig)
ax.plot_wireframe(xx, yy, zz)
plt.title("%sx^%s + %sy^%s + %s" % (a, n, b, n, c))
plt.show()

このサイトについて

HTML5 & CSS3化しつつあるので、現在IEには対応してません。
できれば、Google Chromeやら Apple SafariのWebKit系をお勧めします。

DBからプログラムまで一応全て自作なので、バグってたらすいません。
実験でFlash版(Flex版)を先に作りましたが、ちょっと停止してます。

プロフィール

新宿近辺でSE & プログラマーしてます。
Webアプリの開発・設計とか、最近はiPhoneとか奮闘してます。
デザインはさっぱりです。

音楽は、昔からCubase打ち込み人間で、そっちの方が経歴は長いですが、最近はやる暇がないです。。。

今は、Gon's Privates ってバンドのキーボードやってます。
単発的に、なんちゃってジャズ系のライブもやってます。

名古屋生まれなのでドラゴンズ好きです。

Info && SNS

Gmail

 yohei.yoshikawa@gmail.com

Twitter

 http://twitter.com/yoo_yoo_yoo

あんまつぶやきませんが、一応技術系メインで使ってます。情報交換はこちらへ

FaceBook

 http://www.facebook.com/#!/profile.php?id=1439130626

海外の知り合いがいないので閑散としてます。

mixi

 http://mixi.jp/show_profile.pl?id=230072

音楽仲間とかはこっちメインでやってます。興味があればこちらへ