[3dsmax] scripts de cilindros y colores
Hola a todos, soy muy novato y era para ver si me podéis echar una mano con unos ejercicios. A) define una función cilindresencercle con los parámetros siguientes:
· n: el numero de cilindros.
· rcir: el radio de la circunferencia.
· rcil: el radio de los cilindros.
I que devuelva una colección de n cilindros de radio ecil, se alturas aleatorias entre 10 y 100 y equidistribuidos angularmente en una circunferencia del plano XY de centro el origen de coordenada, y de radio rcir, se ha de llamar así: cilindresencercle n rcir rcil.
De momento tengo hecho esto:
For I=0 todo 360 by 20 do (.
Local c = cylinder ().
C, Radius = 10.
C, height = random 10 100.
C, pues = [i+10, i+10,0]).
Pero me dibuja una diagonal de cilindros, y no sé que valores he de dar al c, pues, que además seguro que depende del número de cilindros.
B) define una función cambia color que pueda actuar sobre una colección y que cambie el color de un objeto a un valor aleatorio en una gama monocromática a escoger por el usuario. Esta función se llama así:
Cambia color col gama.
Donde col es el nombre de un objeto o colección de objetos y gama es la letra entre comillas (r, g o b) que indica a que gama de colores hemos de trabajar.
La función case puede ser útil.
No tengo ni pajolera idea de cómo va el case.
Algo así iría bien para cambiar el color en caso de que se escogiera la gama r:
X.wirecolorr = color (random 0 255) (0) (0).
Aunque no sé cómo asignarlo aleatoriamente. Gracias de antemano. Saludos.
[3dsmax] scripts de cilindros y colores
Hola, a ver si te puedo echar un cable con esto.
Cita:
A) define una función cilindresencercle con los parámetros siguientes:
· n: el numero de cilindros.
· rcir: el radio de la circunferencia.
· rcil: el radio de los cilindros.
I que devuelva una colección de n cilindros de radio ecil, se alturas aleatorias entre 10 y 100 y equidistribuidos angularmente en una circunferencia del plano XY de centro el origen de coordenada, y de radio rcir, se ha de llamar así: cilindresencercle n rcir rcil.
En este caso el principal fallo es que te falta convertir de un sistema de coordenadas Polar (donde estableces radio y ángulo) a uno cartesiano (x y, z), el resto es prácticamente igual a lo que tienes.
Código:
Fn cilindresencercle n rcir rcil =
(tlocal allcyl = #() tfor theta=0 todo 360 by (360/n) do t(t local x = rcir * cos(theta) local y = rcir * sin(theta) local c = cylinder() c, Radius = rcil c, position = [x y, 0] append allcyl c t) tdeleete (allcyl[allcyl, count]) treturn allcyl.
)
Cita:
B) define una función canviacolor que pueda actuar sobre una colección y que cambie el color de un objeto a un valor aleatorio en una gama monocromática a escoger por el usuario. Esta función se llama así:
Canvicolor col gama.
En este caso tienes que recorrer el array col y por cada elemento cambiar el componente correspondiente del color filtrando mediante el string gamma.
Código:
Fn cambiacolor col gamma =
(tfor each in col do t(t local randomvalue = random 0 255 case of (t (gamma == r): each.wirecolor, r = randomvalue (gamma == g): each.wirecolor, g = randomvalue (gamma == b): each.wirecolor, b = randomvalue ) t).
)
Saludos.
[3dsmax] scripts de cilindros y colores
Cita:
Hola a todos, soy muy novato y era para ver si me podéis echar una mano con unos ejercicios. A) define una función cilindresencercle con los parámetros siguientes:
· n: el numero de cilindros.
· rcir: el radio de la circunferencia.
· rcil: el radio de los cilindros.
I que devuelva una colección de n cilindros de radio ecil, se alturas aleatorias entre 10 y 100 y equidistribuidos angularmente en una circunferencia del plano XY de centro el origen de coordenada, y de radio rcir, se ha de llamar así: cilindresencercle n rcir rcil.
De momento tengo hecho esto:
For I=0 todo 360 by 20 do (
Local c = cylinder ()
C, Radius = 10
C, height = random 10 100
C, pues = [i+10, i+10,0]
).
Pero me dibuja una diagonal de cilindros, y no sé que valores he de dar al c, pues, que además seguro que depende del número de cilindros.
B) define una función canviacolor que pueda actuar sobre una colección y que cambie el color de un objeto a un valor aleatorio en una gama monocromática a escoger por el usuario. Esta función se llama así:
Canvicolor col gama.
Donde col es el nombre de un objeto o colección de objetos y gama es la letra entre comillas (r, g o b) que indica a que gama de colores hemos de trabajar, la función case puede ser útil.
No tengo ni pajolera idea de cómo va el case.
Algo así iría bien para cambiar el color en caso de que se escogiera la gama r:
X.wirecolorr = color (random 0 255) (0) (0).
Aunque no sé cómo asignarlo aleatoriamente. Gracias de antemano. Saludos.
Esto suena a deberes de clase. ¿estás en algún curso? ¿os enseñan maxscript? ¿en qué ciudad del este de España es?
[3dsmax] scripts de cilindros y colores
Vaya, ahora que lo leo si que parecen deberes de clase, no lo había asociado. Si es que lo son trata de estudiar las funciones que escribí más arriba y las diferencias con lo que tenías, sino no tiene sentido hacer el curso.