In [1]:
__author__ = "Víctor Adolfo Gallego Alcalá, Ana María Martínez Gómez"
from __future__ import division
import numpy as np
import mayavi.mlab as ml
In [2]:
from scipy.special import binom
def bernstein(t, n, k):
""" Helper method for the evaluation of a Bézier surface
"""
return binom(n,k)*t**k*(1-t)**(n-k)
def eval_direct(t,s,P):
""" Given time intervals t and s, and a matrix of control
points P, it evaluates the Bézier surface
"""
m,n = P.shape[:2]
sum = np.zeros([3,t.shape[0],t.shape[0]])
m -= 1
n -= 1
for i in range(m+1):
for j in range(n+1):
sum += np.einsum('i,jk->ijk',P[i,j,:],bernstein(t,m,i)*bernstein(s,n,j))
return sum
In [3]:
# Teapot
XX = np.array([[[[ 1.4 , 0. , -1.4 ],
[ 0. , 1.5 , 0. ],
[-1.5 , 0. , 2. ],
[ 0. , -2. , 0. ]],
[[-1.6 , -1.5 , -2.7 ],
[-3. , 1.7 , 1.7 ],
[ 2.7 , 3.3 , 0. ],
[ 0. , 0. , 0. ]],
[[ 0.2 , 0. , -0.2 ],
[ 0. , 0. , 0. ],
[ 0. , 0. , 0. ],
[-1.4 , 0. , 1.4 ]],
[[ 0. , -1.5 , 0. ],
[ 1.5 , 0. , -2. ],
[ 0. , 2. , 0. ],
[ 0. , 0. , 0. ]]],
[[[ 0. , 0. , 0. ],
[ 0. , 0. , 0. ],
[ 0. , 0. , 0. ],
[-0.2 , 0. , 0.2 ]],
[[ 0. , 0. , 0. ],
[ 0. , 2.4 , 2.4 ],
[ 2.4 , 2.4 , 2.4 ],
[ 2.4 , 2.4 , 2.4 ]],
[[ 0.9 , 0.9 , 0.9 ],
[ 0.9 , 2.025 , 2.25 ],
[ 1.8 , 1.8 , 1.425 ],
[ 0.6 , 2.4 , 2.4 ]],
[[ 3.15 , 3.15 , 3.15 ],
[ 3.15 , 2.7 , 2.7 ],
[ 2.7 , 2.7 , 0. ],
[ 0. , 0. , 0. ]]],
[[[ 1.4 , -0.784 , -1.4 ],
[ 0.784 , 1.5 , -0.84 ],
[-1.5 , 0.84 , 2. ],
[-1.12 , -2. , 1.12 ]],
[[-1.6 , -1.5 , -2.7 ],
[-3. , 1.7 , 1.7 ],
[ 2.7 , 3.3 , 0. ],
[ 0. , 0. , 0. ]],
[[ 0.2 , -0.112 , -0.2 ],
[ 0.112 , 0. , 0. ],
[ 0. , 0. , -0.784 ],
[-1.4 , 0.784 , 1.4 ]],
[[-0.84 , -1.5 , 0.84 ],
[ 1.5 , -1.12 , -2. ],
[ 1.12 , 2. , -0.3 ],
[ 0.3 , -0.3 , 0.3 ]]],
[[[-0.66 , 0.66 , -0.25 ],
[ 0.25 , 0. , 0. ],
[ 0. , 0. , -0.112 ],
[-0.2 , 0.112 , 0.2 ]],
[[ 0. , 0. , 0. ],
[ 0. , 2.4 , 2.4 ],
[ 2.4 , 2.4 , 2.4 ],
[ 2.4 , 2.4 , 2.4 ]],
[[ 0.9 , 0.9 , 0.9 ],
[ 0.9 , 2.025 , 2.25 ],
[ 1.8 , 1.8 , 1.425 ],
[ 0.6 , 2.4 , 2.4 ]],
[[ 3.15 , 3.15 , 3.15 ],
[ 3.15 , 2.7 , 2.7 ],
[ 2.7 , 2.7 , 0. ],
[ 0. , 0. , 0. ]]],
[[[ 0.784 , -1.4 , -0.784 ],
[ 1.4 , 0.84 , -1.5 ],
[-0.84 , 1.5 , 1.12 ],
[-2. , -1.12 , 2. ]],
[[-1.5 , -1.6 , -3. ],
[-2.7 , 1.7 , 1.7 ],
[ 3.3 , 2.7 , 0. ],
[ 0. , 0. , 0. ]],
[[ 0.112 , -0.2 , -0.112 ],
[ 0.2 , 0. , 0. ],
[ 0. , 0. , -1.4 ],
[-0.784 , 1.4 , 0.784 ]],
[[-1.5 , -0.84 , 1.5 ],
[ 0.84 , -2. , -1.12 ],
[ 2. , 1.12 , -0.3 ],
[ 0.3 , -0.3 , 0.3 ]]],
[[[-0.66 , 0.66 , -0.25 ],
[ 0.25 , 0. , 0. ],
[ 0. , 0. , -0.2 ],
[-0.112 , 0.2 , 0.112 ]],
[[ 0. , 0. , 0. ],
[ 0. , 2.4 , 2.4 ],
[ 2.4 , 2.4 , 2.4 ],
[ 2.4 , 2.4 , 2.4 ]],
[[ 0.9 , 0.9 , 0.9 ],
[ 0.9 , 2.25 , 2.025 ],
[ 1.8 , 1.8 , 0.6 ],
[ 1.425 , 2.4 , 2.4 ]],
[[ 3.15 , 3.15 , 3.15 ],
[ 3.15 , 2.7 , 2.7 ],
[ 2.7 , 2.7 , 0. ],
[ 0. , 0. , 0. ]]],
[[[ 0. , -1.4 , 0. ],
[ 1.4 , 0. , -1.5 ],
[ 0. , 1.5 , 0. ],
[-2. , 0. , 2. ]],
[[-1.5 , -1.6 , -3. ],
[-2.7 , 1.7 , 1.7 ],
[ 3.3 , 2.7 , 0. ],
[ 0. , 0. , 0. ]],
[[ 0. , -0.2 , 0. ],
[ 0.2 , 0. , 0. ],
[ 0. , 0. , -1.4 ],
[ 0. , 1.4 , 0. ]],
[[-1.5 , 0. , 1.5 ],
[ 0. , -2. , 0. ],
[ 2. , 0. , 0. ],
[ 0. , 0. , 0. ]]],
[[[ 0. , 0. , 0. ],
[ 0. , 0. , 0. ],
[ 0. , 0. , -0.2 ],
[ 0. , 0.2 , 0. ]],
[[ 0. , 0. , 0. ],
[ 0. , 2.4 , 2.4 ],
[ 2.4 , 2.4 , 2.4 ],
[ 2.4 , 2.4 , 2.4 ]],
[[ 0.9 , 0.9 , 0.9 ],
[ 0.9 , 2.25 , 2.025 ],
[ 1.8 , 1.8 , 0.6 ],
[ 1.425 , 2.4 , 2.4 ]],
[[ 3.15 , 3.15 , 3.15 ],
[ 3.15 , 2.7 , 2.7 ],
[ 2.7 , 2.7 , 0. ],
[ 0. , 0. , 0. ]]],
[[[ 1.3375 , 0. , -1.3375 ],
[ 0. , 1.75 , 0. ],
[-1.75 , 0. , 2. ],
[ 0. , -2. , 0. ]],
[[-2.3 , -2.5 , -2.7 ],
[-3. , 2.6 , 3.1 ],
[ 2.8 , 3.525 , 0.8 ],
[ 0. , -0.8 , 0. ]],
[[ 0.4 , 0. , -0.4 ],
[ 0. , 1.425 , 0. ],
[-1.425 , 0. , 0. ],
[-1.3375 , 0. , 1.3375 ]],
[[ 0. , -1.75 , 0. ],
[ 1.75 , 0. , -2. ],
[ 0. , 2. , 0. ],
[ 0. , 0. , 0. ]]],
[[[ 0. , 0. , 0. ],
[ 0. , 0. , -0.8 ],
[ 0. , 0.8 , 0. ],
[-0.4 , 0. , 0.4 ]],
[[ 0. , 1.425 , 0. ],
[-1.425 , 2.53125, 2.53125],
[ 2.53125, 2.53125, 1.875 ],
[ 1.875 , 1.875 , 1.875 ]],
[[ 0.45 , 0.45 , 0.45 ],
[ 0.45 , 2.025 , 2.25 ],
[ 1.575 , 1.35 , 1.425 ],
[ 0.825 , 2.475 , 2.49375]],
[[ 3.15 , 3.15 , 3.15 ],
[ 3.15 , 2.55 , 2.55 ],
[ 2.55 , 2.55 , 0. ],
[ 0. , 0. , 0. ]]],
[[[ 1.3375 , -0.749 , -1.3375 ],
[ 0.749 , 1.75 , -0.98 ],
[-1.75 , 0.98 , 2. ],
[-1.12 , -2. , 1.12 ]],
[[-2.3 , -2.5 , -2.7 ],
[-3. , 2.6 , 3.1 ],
[ 2.8 , 3.525 , 0.8 ],
[-0.45 , -0.8 , 0.45 ]],
[[ 0.4 , -0.224 , -0.4 ],
[ 0.224 , 1.425 , -0.798 ],
[-1.425 , 0.798 , -0.749 ],
[-1.3375 , 0.749 , 1.3375 ]],
[[-0.98 , -1.75 , 0.98 ],
[ 1.75 , -1.12 , -2. ],
[ 1.12 , 2. , -0.3 ],
[ 0.3 , -0.3 , 0.3 ]]],
[[[-0.66 , 0.66 , -0.25 ],
[ 0.25 , -0.45 , -0.8 ],
[ 0.45 , 0.8 , -0.224 ],
[-0.4 , 0.224 , 0.4 ]],
[[ 0.798 , 1.425 , -0.798 ],
[-1.425 , 2.53125, 2.53125],
[ 2.53125, 2.53125, 1.875 ],
[ 1.875 , 1.875 , 1.875 ]],
[[ 0.45 , 0.45 , 0.45 ],
[ 0.45 , 2.025 , 2.25 ],
[ 1.575 , 1.35 , 1.425 ],
[ 0.825 , 2.475 , 2.49375]],
[[ 3.15 , 3.15 , 3.15 ],
[ 3.15 , 2.55 , 2.55 ],
[ 2.55 , 2.55 , 0. ],
[ 0. , 0. , 0. ]]],
[[[ 0.749 , -1.3375 , -0.749 ],
[ 1.3375 , 0.98 , -1.75 ],
[-0.98 , 1.75 , 1.12 ],
[-2. , -1.12 , 2. ]],
[[-2.5 , -2.3 , -3. ],
[-2.7 , 3.1 , 2.6 ],
[ 3.525 , 2.8 , 0.45 ],
[-0.8 , -0.45 , 0.8 ]],
[[ 0.224 , -0.4 , -0.224 ],
[ 0.4 , 0.798 , -1.425 ],
[-0.798 , 1.425 , -1.3375 ],
[-0.749 , 1.3375 , 0.749 ]],
[[-1.75 , -0.98 , 1.75 ],
[ 0.98 , -2. , -1.12 ],
[ 2. , 1.12 , -0.3 ],
[ 0.3 , -0.3 , 0.3 ]]],
[[[-0.66 , 0.66 , -0.25 ],
[ 0.25 , -0.8 , -0.45 ],
[ 0.8 , 0.45 , -0.4 ],
[-0.224 , 0.4 , 0.224 ]],
[[ 1.425 , 0.798 , -1.425 ],
[-0.798 , 2.53125, 2.53125],
[ 2.53125, 2.53125, 1.875 ],
[ 1.875 , 1.875 , 1.875 ]],
[[ 0.45 , 0.45 , 0.45 ],
[ 0.45 , 2.25 , 2.025 ],
[ 1.35 , 1.575 , 0.825 ],
[ 1.425 , 2.49375, 2.475 ]],
[[ 3.15 , 3.15 , 3.15 ],
[ 3.15 , 2.55 , 2.55 ],
[ 2.55 , 2.55 , 0. ],
[ 0. , 0. , 0. ]]],
[[[ 0. , -1.3375 , 0. ],
[ 1.3375 , 0. , -1.75 ],
[ 0. , 1.75 , 0. ],
[-2. , 0. , 2. ]],
[[-2.5 , -2.3 , -3. ],
[-2.7 , 3.1 , 2.6 ],
[ 3.525 , 2.8 , 0. ],
[-0.8 , 0. , 0.8 ]],
[[ 0. , -0.4 , 0. ],
[ 0.4 , 0. , -1.425 ],
[ 0. , 1.425 , -1.3375 ],
[ 0. , 1.3375 , 0. ]],
[[-1.75 , 0. , 1.75 ],
[ 0. , -2. , 0. ],
[ 2. , 0. , 0. ],
[ 0. , 0. , 0. ]]],
[[[ 0. , 0. , 0. ],
[ 0. , -0.8 , 0. ],
[ 0.8 , 0. , -0.4 ],
[ 0. , 0.4 , 0. ]],
[[ 1.425 , 0. , -1.425 ],
[ 0. , 2.53125, 2.53125],
[ 2.53125, 2.53125, 1.875 ],
[ 1.875 , 1.875 , 1.875 ]],
[[ 0.45 , 0.45 , 0.45 ],
[ 0.45 , 2.25 , 2.025 ],
[ 1.35 , 1.575 , 0.825 ],
[ 1.425 , 2.49375, 2.475 ]],
[[ 3.15 , 3.15 , 3.15 ],
[ 3.15 , 2.55 , 2.55 ],
[ 2.55 , 2.55 , 0. ],
[ 0. , 0. , 0. ]]],
[[[ 1.4375 , 0. , -1.4375 ],
[ 0. , 2. , 0. ],
[-2. , 0. , 1.5 ],
[ 0. , -1.5 , 0. ]],
[[-2.7 , -3. , -2.5 ],
[-2.65 , 2.3 , 2.4 ],
[ 2.9 , 3.45 , 0. ],
[ 0. , 0. , 0. ]],
[[ 1.3 , 0. , -1.3 ],
[ 0. , 1.5 , 0. ],
[-1.5 , 0. , 0. ],
[-1.4375 , 0. , 1.4375 ]],
[[ 0. , -2. , 0. ],
[ 2. , 0. , -1.5 ],
[ 0. , 1.5 , 0. ],
[ 0. , 0. , 0. ]]],
[[[ 0. , 0. , 0. ],
[ 0. , 0. , 0. ],
[ 0. , 0. , 0. ],
[-1.3 , 0. , 1.3 ]],
[[ 0. , 1.5 , 0. ],
[-1.5 , 2.53125, 2.53125],
[ 2.53125, 2.53125, 1.35 ],
[ 1.35 , 1.35 , 1.35 ]],
[[ 0.225 , 0.225 , 0.225 ],
[ 0.225 , 2.025 , 2.25 ],
[ 1.125 , 0.9375 , 2.1 ],
[ 2.025 , 2.475 , 2.5125 ]],
[[ 2.85 , 2.85 , 2.85 ],
[ 2.85 , 2.55 , 2.55 ],
[ 2.55 , 2.55 , 0.075 ],
[ 0.075 , 0.075 , 0.075 ]]],
[[[ 1.4375 , -0.805 , -1.4375 ],
[ 0.805 , 2. , -1.12 ],
[-2. , 1.12 , 1.5 ],
[-0.84 , -1.5 , 0.84 ]],
[[-2.7 , -3. , -2.5 ],
[-2.65 , 2.3 , 2.4 ],
[ 2.9 , 3.45 , 0. ],
[ 0. , 0. , 0. ]],
[[ 1.3 , -0.728 , -1.3 ],
[ 0.728 , 1.5 , -0.84 ],
[-1.5 , 0.84 , -0.805 ],
[-1.4375 , 0.805 , 1.4375 ]],
[[-1.12 , -2. , 1.12 ],
[ 2. , -0.84 , -1.5 ],
[ 0.84 , 1.5 , -0.3 ],
[ 0.3 , -0.3 , 0.3 ]]],
[[[-0.25 , 0.25 , -0.15 ],
[ 0.15 , 0. , 0. ],
[ 0. , 0. , -0.728 ],
[-1.3 , 0.728 , 1.3 ]],
[[ 0.84 , 1.5 , -0.84 ],
[-1.5 , 2.53125, 2.53125],
[ 2.53125, 2.53125, 1.35 ],
[ 1.35 , 1.35 , 1.35 ]],
[[ 0.225 , 0.225 , 0.225 ],
[ 0.225 , 2.025 , 2.25 ],
[ 1.125 , 0.9375 , 2.1 ],
[ 2.025 , 2.475 , 2.5125 ]],
[[ 2.85 , 2.85 , 2.85 ],
[ 2.85 , 2.55 , 2.55 ],
[ 2.55 , 2.55 , 0.075 ],
[ 0.075 , 0.075 , 0.075 ]]],
[[[ 0.805 , -1.4375 , -0.805 ],
[ 1.4375 , 1.12 , -2. ],
[-1.12 , 2. , 0.84 ],
[-1.5 , -0.84 , 1.5 ]],
[[-3. , -2.7 , -2.65 ],
[-2.5 , 2.4 , 2.3 ],
[ 3.45 , 2.9 , 0. ],
[ 0. , 0. , 0. ]],
[[ 0.728 , -1.3 , -0.728 ],
[ 1.3 , 0.84 , -1.5 ],
[-0.84 , 1.5 , -1.4375 ],
[-0.805 , 1.4375 , 0.805 ]],
[[-2. , -1.12 , 2. ],
[ 1.12 , -1.5 , -0.84 ],
[ 1.5 , 0.84 , -0.3 ],
[ 0.3 , -0.3 , 0.3 ]]],
[[[-0.25 , 0.25 , -0.15 ],
[ 0.15 , 0. , 0. ],
[ 0. , 0. , -1.3 ],
[-0.728 , 1.3 , 0.728 ]],
[[ 1.5 , 0.84 , -1.5 ],
[-0.84 , 2.53125, 2.53125],
[ 2.53125, 2.53125, 1.35 ],
[ 1.35 , 1.35 , 1.35 ]],
[[ 0.225 , 0.225 , 0.225 ],
[ 0.225 , 2.25 , 2.025 ],
[ 0.9375 , 1.125 , 2.025 ],
[ 2.1 , 2.5125 , 2.475 ]],
[[ 2.85 , 2.85 , 2.85 ],
[ 2.85 , 2.55 , 2.55 ],
[ 2.55 , 2.55 , 0.075 ],
[ 0.075 , 0.075 , 0.075 ]]],
[[[ 0. , -1.4375 , 0. ],
[ 1.4375 , 0. , -2. ],
[ 0. , 2. , 0. ],
[-1.5 , 0. , 1.5 ]],
[[-3. , -2.7 , -2.65 ],
[-2.5 , 2.4 , 2.3 ],
[ 3.45 , 2.9 , 0. ],
[ 0. , 0. , 0. ]],
[[ 0. , -1.3 , 0. ],
[ 1.3 , 0. , -1.5 ],
[ 0. , 1.5 , -1.4375 ],
[ 0. , 1.4375 , 0. ]],
[[-2. , 0. , 2. ],
[ 0. , -1.5 , 0. ],
[ 1.5 , 0. , 0. ],
[ 0. , 0. , 0. ]]],
[[[ 0. , 0. , 0. ],
[ 0. , 0. , 0. ],
[ 0. , 0. , -1.3 ],
[ 0. , 1.3 , 0. ]],
[[ 1.5 , 0. , -1.5 ],
[ 0. , 2.53125, 2.53125],
[ 2.53125, 2.53125, 1.35 ],
[ 1.35 , 1.35 , 1.35 ]],
[[ 0.225 , 0.225 , 0.225 ],
[ 0.225 , 2.25 , 2.025 ],
[ 0.9375 , 1.125 , 2.025 ],
[ 2.1 , 2.5125 , 2.475 ]],
[[ 2.85 , 2.85 , 2.85 ],
[ 2.85 , 2.55 , 2.55 ],
[ 2.55 , 2.55 , 0.075 ],
[ 0.075 , 0.075 , 0.075 ]]],
[[[ 1.5 , 0. , -1.5 ],
[ 0. , 2. , 0. ],
[-2. , 0. , 1.5 ],
[ 0. , -1.5 , 0. ]],
[[-2.7 , -3. , -2. ],
[-1.9 , 2.7 , 3.3 ],
[ 2.8 , 3.2 , 0.2 ],
[ 0. , -0.2 , 0. ]],
[[ 1.3 , 0. , -1.3 ],
[ 0. , 1.5 , 0. ],
[-1.5 , 0. , 0. ],
[-1.5 , 0. , 1.5 ]],
[[ 0. , -2. , 0. ],
[ 2. , 0. , -1.5 ],
[ 0. , 1.5 , 0. ],
[ 0. , 0. , 0. ]]],
[[[ 0. , 0. , 0. ],
[ 0. , 0. , -0.2 ],
[ 0. , 0.2 , 0. ],
[-1.3 , 0. , 1.3 ]],
[[ 0. , 1.5 , 0. ],
[-1.5 , 2.4 , 2.4 ],
[ 2.4 , 2.4 , 0.9 ],
[ 0.9 , 0.9 , 0.9 ]],
[[ 0.15 , 0.15 , 0.15 ],
[ 0.15 , 1.8 , 1.8 ],
[ 0.9 , 0.6 , 2.4 ],
[ 2.4 , 2.4 , 2.4 ]],
[[ 2.7 , 2.7 , 2.7 ],
[ 2.7 , 2.4 , 2.4 ],
[ 2.4 , 2.4 , 0.15 ],
[ 0.15 , 0.15 , 0.15 ]]],
[[[ 1.5 , -0.84 , -1.5 ],
[ 0.84 , 2. , -1.12 ],
[-2. , 1.12 , 1.5 ],
[-0.84 , -1.5 , 0.84 ]],
[[-2.7 , -3. , -2. ],
[-1.9 , 2.7 , 3.3 ],
[ 2.8 , 3.2 , 0.2 ],
[-0.112 , -0.2 , 0.112 ]],
[[ 1.3 , -0.728 , -1.3 ],
[ 0.728 , 1.5 , -0.84 ],
[-1.5 , 0.84 , -0.84 ],
[-1.5 , 0.84 , 1.5 ]],
[[-1.12 , -2. , 1.12 ],
[ 2. , -0.84 , -1.5 ],
[ 0.84 , 1.5 , -0.3 ],
[ 0.3 , -0.3 , 0.3 ]]],
[[[-0.25 , 0.25 , -0.15 ],
[ 0.15 , -0.112 , -0.2 ],
[ 0.112 , 0.2 , -0.728 ],
[-1.3 , 0.728 , 1.3 ]],
[[ 0.84 , 1.5 , -0.84 ],
[-1.5 , 2.4 , 2.4 ],
[ 2.4 , 2.4 , 0.9 ],
[ 0.9 , 0.9 , 0.9 ]],
[[ 0.15 , 0.15 , 0.15 ],
[ 0.15 , 1.8 , 1.8 ],
[ 0.9 , 0.6 , 2.4 ],
[ 2.4 , 2.4 , 2.4 ]],
[[ 2.7 , 2.7 , 2.7 ],
[ 2.7 , 2.4 , 2.4 ],
[ 2.4 , 2.4 , 0.15 ],
[ 0.15 , 0.15 , 0.15 ]]],
[[[ 0.84 , -1.5 , -0.84 ],
[ 1.5 , 1.12 , -2. ],
[-1.12 , 2. , 0.84 ],
[-1.5 , -0.84 , 1.5 ]],
[[-3. , -2.7 , -1.9 ],
[-2. , 3.3 , 2.7 ],
[ 3.2 , 2.8 , 0.112 ],
[-0.2 , -0.112 , 0.2 ]],
[[ 0.728 , -1.3 , -0.728 ],
[ 1.3 , 0.84 , -1.5 ],
[-0.84 , 1.5 , -1.5 ],
[-0.84 , 1.5 , 0.84 ]],
[[-2. , -1.12 , 2. ],
[ 1.12 , -1.5 , -0.84 ],
[ 1.5 , 0.84 , -0.3 ],
[ 0.3 , -0.3 , 0.3 ]]],
[[[-0.25 , 0.25 , -0.15 ],
[ 0.15 , -0.2 , -0.112 ],
[ 0.2 , 0.112 , -1.3 ],
[-0.728 , 1.3 , 0.728 ]],
[[ 1.5 , 0.84 , -1.5 ],
[-0.84 , 2.4 , 2.4 ],
[ 2.4 , 2.4 , 0.9 ],
[ 0.9 , 0.9 , 0.9 ]],
[[ 0.15 , 0.15 , 0.15 ],
[ 0.15 , 1.8 , 1.8 ],
[ 0.6 , 0.9 , 2.4 ],
[ 2.4 , 2.4 , 2.4 ]],
[[ 2.7 , 2.7 , 2.7 ],
[ 2.7 , 2.4 , 2.4 ],
[ 2.4 , 2.4 , 0.15 ],
[ 0.15 , 0.15 , 0.15 ]]],
[[[ 0. , -1.5 , 0. ],
[ 1.5 , 0. , -2. ],
[ 0. , 2. , 0. ],
[-1.5 , 0. , 1.5 ]],
[[-3. , -2.7 , -1.9 ],
[-2. , 3.3 , 2.7 ],
[ 3.2 , 2.8 , 0. ],
[-0.2 , 0. , 0.2 ]],
[[ 0. , -1.3 , 0. ],
[ 1.3 , 0. , -1.5 ],
[ 0. , 1.5 , -1.5 ],
[ 0. , 1.5 , 0. ]],
[[-2. , 0. , 2. ],
[ 0. , -1.5 , 0. ],
[ 1.5 , 0. , 0. ],
[ 0. , 0. , 0. ]]],
[[[ 0. , 0. , 0. ],
[ 0. , -0.2 , 0. ],
[ 0.2 , 0. , -1.3 ],
[ 0. , 1.3 , 0. ]],
[[ 1.5 , 0. , -1.5 ],
[ 0. , 2.4 , 2.4 ],
[ 2.4 , 2.4 , 0.9 ],
[ 0.9 , 0.9 , 0.9 ]],
[[ 0.15 , 0.15 , 0.15 ],
[ 0.15 , 1.8 , 1.8 ],
[ 0.6 , 0.9 , 2.4 ],
[ 2.4 , 2.4 , 2.4 ]],
[[ 2.7 , 2.7 , 2.7 ],
[ 2.7 , 2.4 , 2.4 ],
[ 2.4 , 2.4 , 0.15 ],
[ 0.15 , 0.15 , 0.15 ]]]])
XX = XX.reshape(4,4,3,32)
In [ ]:
[t,s] = np.mgrid[0:1.01:0.01, 0:1.01:0.01]
for k in range(32):
P = XX[:,:,:,k]
W = eval_direct(t,s,P)
ml.mesh(W[0,:,:], W[1,:,:], W[2,:,:], colormap='pink')
PP = P.reshape(4*4,3)
ml.points3d(PP[:,0],PP[:,1],PP[:,2],scale_factor=0.1)
ml.show()