
① ハート用曲面をつくる。
p surface np.linspace(-1.5,1.5,100) np.linspace(-1.5,1.5,100) np.clip((x**2+z**2-1)**3-(x**2)*(z**3),-0.5,0.5)
※ 周辺の y の値が急激に大きくなるので、クリップする。
c cyan
surface
② y = 0 平面をつくる。
p surface np.linspace(-2,2,3) np.linspace(-2,2,3) np.zeros((3,3))
c pink
surface
p surface np.linspace(-1.5,1.5,100) np.linspace(-1.5,1.5,100) (z-np.abs(4*x/5)**(2/3))**2+(4*x/5)**2
c cyan
surface
p surface np.linspace(-2,2,3) np.linspace(-2,2,3) np.zeros((3,3))
c pink
surface
t 0 0.7 0

p surface np.linspace(-1.5,1.5,100) np.linspace(-1.5,1.5,100) (4*z/3-np.sqrt(np.abs(x)))**2+x**2
c cyan
surface
p surface np.linspace(-2,2,3) np.linspace(-2,2,3) np.zeros((3,3))
c pink
surface
t 0 1 0

p surface np.linspace(-1.5,1.5,100) np.linspace(-1.5,1.5,100) (x**2+z**2-1)**3-(x**2)*(z**3)
c cyan
surface
p surface np.linspace(-2,2,3) np.linspace(-2,2,3) np.zeros((3,3))
c pink
surface

陰関数の立体化
python implicit_function.py (z-np.abs(4*x/5)**(2/3))**2+(4*x/5)**2+y
・ x, y, z を含む式にしないとエラー終了するので +y とした。
・ エラー終了しない範囲で矢印キーで level を調整する。
・ sキー押下で保存終了 (implicit_function.ply に保存される)
python create_back_face_from_front_face.py implicit_function.ply
・ ウラ面が無いのでオモテ面からウラ面をつくる。
python PLY_interactive.py
l implicit_function.ply ・・・ オモテ面をロード
c 255 128 255 ・・・ オモテ面を濃いピンクで塗りつぶす
l implicit_function_back_face.ply ・・・ ウラ面をロード
c 255 200 255 ・・・ ウラ面を薄いピンクで塗りつぶす
merge ・・・ オモテ面とウラ面をマージ
