Paso 1
-
Crear los parámetros de Muestras y Radio que en los tutoriales anteriores declaramos en un constant CHOP.
-
Asignar el valor de los parámetros a variables para radio y muestras(r,muestras) y posteriormente asignar el número de muestras de la variable al operador.
-
Calcular el paso o valor que tendrá cada muestra y asignarlo a una variable.
-
Crear nuestros canales de salida necesarios(tx,ty,tz) para visualizar la curva.
-
Crear el nuevo valor de acuerdo a la ecuación paramétrica y asignar individualmente a cada muestra de nuestros canales.
Así que podemos modificar ese código para declarar nuestros parámetros:
Paso 2.1
def onSetupParameters(scriptOp): #Crear Pagina de Parametros page = scriptOp.appendCustomPage('Parametros') #Crear parametro para definir la cantidad de muestras en #el operador p = page.appendInt('Muestras', label='Muestras') #Crear parametro para definir el radio del circulo p = page.appendFloat('Radio', label='Radio')
Para que los cambios se generen, debemos salvar los cambios hechos(ctrl-s), volver a la pestaña Script y dar clic en el botón Setup:
Paso 2.2
Primero crearemos una variable que almacenara el valor que introduzcamos en el parámetro Radio y Muestras, con el siguiente código:
#Almacenar el numero de muestras en variable r = scriptOp.par.Radio muestras = scriptOp.par.Muestras
Después asignaremos esta variable a al numero de muestras del operador con el siguiente código:
#asignar el numero de muestras a las muestras del operador scriptOp.numSamples = muestras
Paso 2.3
paso = 1/(muestras-1)
Paso 2.4
#crear canales tx,ty,tz para visualizar nuestro circulo tx = scriptOp.appendChan('tx') ty = scriptOp.appendChan('ty') tz = scriptOp.appendChan('tz')
Paso 2.5
#realizar las ecuciones parametricas y asignar los valores #a los canales necesarios(tx,ty) for i in range(muestras): tx[i] = r * math.cos((paso*i)*(math.pi*2)) ty[i] = r * math.sin((paso*i)*(math.pi*2))
-
Paso. El paso o valor de cada sample lo calculamos con las unidades que estamos trabajando (1, ciclo,360 grados,2pi Radianes), como trabajamos con grados debemos cambiar el numero 1 a 360:
paso = 360/(muestras-1)
-
For Loop. Aquí debemos cambiar la manera en que interpretamos nuestros valores de paso, como estamos trabajando con grados, debemos convertir su valor a radianes pues las funciones matemáticas necesitan valores en radianes, para esto debemos usar la función math.radians(grados), por lo que nuestras líneas quedaran de la siguiente manera:
for i in range(muestras): tx[i] = r * math.cos(math.radians((paso*i))) ty[i] = r * math.sin(math.radians((paso*i)))
Por lo que el nuevo script queda de la siguiente manera y automáticamente vemos de nuevo como se genera la forma del circulo:
-
Paso. Aquí debemos cambiar el valor que se esta dividiendo a 2*pi, que en código seria lo siguiente:
paso = 2*math.pi/(muestras-1)
-
For Loop. Aquí como estamos trabajando en radianes, tenemos que introducir directamente el valor del paso de cada muestra(paso*i), y el código queda de la siguiente manera:
for i in range(muestras): tx[i] = r * math.cos(paso*i) ty[i] = r * math.sin(paso*i)
Y de nuevo podemos confirmar que el código genera un circulo:
Es así como llegamos al final de esta serie de tutoriales introductorios a la graficación de curvas paramétricas usando ecuaciones paramétricas, espero sea de ayuda esta información para sus posteriores proyectos o investigaciones con TouchDesigner, el próximo tutorial empezaremos a trabajar con curvas diferentes al círculo, más interesantes, así como algunas maneras de utilizar esta información.
P.D: En el .toe file adjunto se encuentran dos contenedores en los cuales tenemos los operadores de los tutoriales pasados asi como los nuevos.
-Δ