示例#1
0
    def _XYZ(self, uv):
        # https://math.stackexchange.com/questions/461547/whats-the-equation-of-helix-surface
        theta, t = uv

        f = self.curve._f
        N = self.curve._N
        B = self.curve._B
        r = self.radius

        XYZ = jnp.array(
            f(t)) + r * N(t) * jnp.cos(theta) + r * B(t) * jnp.sin(theta)

        return XYZ
示例#2
0
 def _Y(self, uv):
     return (self.a + (self.b * jnp.cos(uv[1]))) * jnp.sin(uv[0])
示例#3
0
 def _Y(self, uv):
     return (self.R + self.r * jnp.cos(uv[1])) * jnp.sin(uv[0])
示例#4
0
 def _Y(self, uv):
     u, v = uv
     return self.b * jnp.sin(u) * jnp.sin(v)
示例#5
0
 def _X(self, uv):
     u, v = uv
     return self.a * jnp.cos(u) * jnp.sin(v)
示例#6
0
 def _Z(self, uv):
     w, B = uv
     a, b, c = self.abc
     top = (a**2 * jnp.sin(w)**2) + (b**2 * jnp.cos(w)**2) - c**2
     return c * jnp.sin(B) * (jnp.sqrt(top) / jnp.sqrt(a**2 - c**2))
示例#7
0
 def _Y(self, uv):
     w, B = uv
     a, b, c = self.abc
     return b * jnp.cos(B) * jnp.sin(w)
示例#8
0
 def _x(self, t):
     return self.a * jnp.sin(t)
示例#9
0
 def _Y(self, uv):
     return self.r * jnp.sin(uv[0]) * jnp.sin(uv[1])
示例#10
0
 def _X(self, uv):
     return self.r * jnp.cos(uv[0]) * jnp.sin(uv[1])
示例#11
0
 def polar2cart(self, rt):
     r, theta = rt
     return [r * jnp.cos(theta), r * jnp.sin(theta)]
示例#12
0
 def _Y(self, uv):
     u, v = uv
     return self.curve._x(v) * jnp.sin(u)
示例#13
0
 def _Z(self, t):
     return -1.0 * jnp.sin(3 * t)
示例#14
0
 def _X(self, t):
     return jnp.sin(t) + 2 * jnp.sin(2 * t)
示例#15
0
 def _Z(self, uv):
     return self.c * jnp.sin(uv[1])
示例#16
0
 def _X(self, uv):
     w, B = uv
     a, b, c = self.abc
     top = a**2 - (b**2 * jnp.sin(B)**2) - (c**2 * jnp.cos(B)**2)
     return a * jnp.cos(w) * (jnp.sqrt(top) / jnp.sqrt(a**2 - c**2))
示例#17
0
 def _Y(self, uv):
     return jnp.cosh(uv[1]) * jnp.sin(uv[0])
示例#18
0
 def _Z(self, t):
     return self.R * jnp.sin(t)