ハート


作り方

 ① ハート用曲面をつくる。
  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                ・・・ オモテ面とウラ面をマージ