Transcripciones
1. Introducción: Hola a todos. Mi nombre es más pesado y esto es ruido fluyendo, por
supuesto, que profundiza más en el reino del arte generativo. Presentándome un glorioso algoritmo conocido como ruido Perlin. El ruido es una función implementada por muchos periodistas, artistas en multitud de formas. No obstante, nos centraremos principalmente en el movimiento en un campo de flujo entendiendo primero la función de ruido en el procesamiento, visualizando sus valores van alguna animación simple como un círculo oscilante y las rotaciones aleatorizadas suavizadas, que ayudará a transitar para generar animaciones
fluidas en obras de arte estáticas como esta, la fórmula aprenderá puede presentar numerosos resultados ajustando algunos parámetros como escalas, tamaño de
paso, o incluso la geometría utilizada . Entonces te llevaré a través de cada uno con la esperanza de ayudarte a entender cómo funciona el ruido y en última instancia llegar a tu flujo va. Entonces, saltemos a las lecciones y empecemos a aprender.
2. ¿Qué es el ruido?: Tanto el ruido como la función aleatoria producen valores aleatorios. Sólo el ruido es más orgánico en comparación con el aleatorio porque los valores de ruido están influenciados por sus valores vecinos, generando un movimiento fluido suave que ocurre en la naturaleza como nubes, cabello y corrientes de agua. Sintácticamente, la función de ruido toma ya sea 12 o tres argumentos, pero los valores resultantes siempre estarán entre 01. Verá en la siguiente lección un par de ejemplos para visualizar las funciones de ruido hacia afuera.
3. Ejemplo: ¿qué es el ruido?: De acuerdo, antes de meternos en las cosas más avanzadas, quiero explicarte o quieres mostrarte cómo vamos a usar la función de ruido. Ahora, la función de ruido solo produce valores de 0 a uno sin importar qué valores le pongas. Es muy diferente de la función aleatoria donde pones un valor mínimo y
un valor máximo y obtienes valores son valores flotantes entre esos números. Pero para el ruido, no importa cuán grandes sean los valores que le pongas, siempre producirá un valor de 0 a uno. Entonces tendremos que escalar hacia arriba, pero al mismo tiempo, también
tendremos que acercarlo. Entonces queremos sólo un trozo de esa ola de esos valores de ruido porque queremos un movimiento fluido muy suave, porque nos va a dar un movimiento muy rígido. Si no hacemos zoom en una parte de eso, voy a empezar por mostrarles el ejemplo con la onda sinusoidal. Y luego veremos el ejemplo con la función de ruido porque una onda sinusoidal es mucho más fácil de visualizar porque es muy uniforme. Cuando la buena función es un poco más
difícil de descifrar si hubo cambios o no, o si seguimos usando la misma onda o no. De acuerdo, vamos, empecemos primero por crear la ola. Entonces voy a necesitar un punto x e y. Y luego dentro de la función de configuración, voy a dibujar la ola. El ola va a ir de 0 a ancho, y luego va a estar en el medio o en el centro del lienzo. Altura sabia para la x pasará de 0 a la anchura. Pero entonces para los valores y, voy a usar la función sinusoidal. Y luego ingresaré dentro de ella los valores x. Y dibujaré un vértice sobre x e y. y también inicializaré y, altura dividida por dos. Tenemos que empezar las formas y para que cada vértice se conecte con el otro. Y ahora tenemos una onda sinusoidal
muy, muy pequeña. Ahora para escalarlo, vamos a multiplicar por una altura. Porque si quiero escalarlo hacia arriba por uno para darle una amplitud que es la altura de la onda. Entonces digamos que quiero darle una altura de diez. Ahora empezamos a ver realmente la ola. En realidad vayamos aún más alto. Entonces haré un 100. Y se puede ver que la ola casi no tiene anchura, es muy estrecha. Para poder hacer eso, necesitamos un tipo de acercamiento en él. Entonces por eso lo llaman las escalas y los tiempos. Yo lo voy a llamar ancho aquí porque es el ancho de la onda. Entonces para escalar el ancho de cada onda, voy a dividir el valor x por aquí por 1000. Entonces ya vemos que es mucho más grande porque aumentamos el ancho de la ola. Y en realidad disminuyamos esto a diez en su lugar. Ahora empezamos a ver realmente mejor la ola. Entonces ahora que sabemos que tenemos aunque las ondas ancho y la altura de las olas, voy a sumar dos valores más por aquí. Un culto w por el que voy a darle un valor de diez. Y luego voy a hacer esto llamado edge switches height. Y voy a darle un valor de dos porque eso es lo que probé antes. Entonces voy a cambiar esto con ancho y alto. De acuerdo, entonces ahora sabemos que tenemos una onda sinusoidal con un ancho de diez y una altura de dos. Ahora para hacer esto en el centro, directamente en el centro, voy a restar el ancho multiplicado por la altura del porqué. Esto no necesariamente es importante, pero me gusta poner mi onda en el centro y es mucho más fácil para ti visualizar cómo cambia la onda si cambiamos los valores. Entonces ahora podemos ver que está en el centro y ahora los valores son en realidad correctos. Y puedo ver la altura de dos o una ola con una altura de dos y un ancho de diez. Y si alguna vez queremos cambiar esto, digamos 200, que es el ancho a 100, se
puede ver que es mucho más grande porque el ancho ahora es mucho mayor. Y entonces si lo hago, Digamos 15, ahora son dos ola. Y si hacemos cinco, es mucho más pequeño. Entonces sí, depende de cómo quieras hacerlo. Entonces el punto a quitar aquí es que el ancho
o el valor que pongas por aquí destina a la Onda. Entonces si ponemos 40, entonces estamos escalando la ola. A mí me gusta pensar en ello como acercándose a la onda. Y entonces cuanto mayor sea este valor donde la altura entonces más empinadas van a ser las olas. Entonces si íbamos a mover un círculo en esta ola, y podemos hacerlo ahora mismo para que lo veas. Pero antes de que podamos hacer eso, voy a salvar esta ola en clase de apreciación. Porque entonces sólo podemos dibujar la forma una vez dentro de la función de dibujo. Por lo que puedes usar el bucle for para mover el círculo en la Onda y para crear una forma de pieza. Es muy sencillo. Simplemente creas la forma de clase P y luego la llamas como quieras. Y luego aquí o en la función de configuración, lo inicializas usando forma limpia. Y luego usas wave o los métodos dentro de la clase PCA en lugar de simplemente usar la
forma iniciada que se usa directamente dentro del procesamiento. Y luego aquí también, haces ondas y usas el vértice dentro de la clase en forma de T en su lugar. Y ahora tienes la forma que no aparecerá a menos que usara la función de forma. De esta manera lo podemos usar por aquí. Entonces sólo voy a retroceder, porque no queremos que dibuje, queremos que haya hecho una animación. Y luego voy a llamar a la ola. Dentro de la función de forma por aquí. Y ahora lo vemos aparecer por aquí. Si elimino el fondo, lo va a dibujar, si va a ser muy grueso. Y también quieres mover el círculo y no queremos que dibuje. De acuerdo, entonces ahora podemos dibujar el círculo en el mismo punto que el vértice. Y voy a dar el ancho del círculo de diez. Y luego aquí dentro, como hicimos aquí, aumentamos x por uno. Yo también voy a aumentar x por uno. Y luego voy a aumentar y i, la onda sinusoidal, dividida por, que está x dividida por el ancho, para acercarlo y hacerlo mucho más grande. Por lo que el movimiento es mucho más suave. Y luego lo multiplicamos por una piel, así que dale una fuerza a la fuerza porque ahora está llegando a ser más empinada. Cuanto más, más grande es el número que está llegando a ser más empinada y el hardware para el círculo más largo Fred el círculo para subir y bajar. Y ahora voy a hacer también si x es mayor que el ancho. Y quería volver a 0 porque quiero que se mueva el círculo. Y luego una vez que salga de la pantalla y vuelva aquí. Entonces ahora puedo ver el círculo realmente moviéndose a través la ola y se puede ver cómo el movimiento es muy suave. Ahora. Cuanto más alto es esto, la altura es cuál es la fuerza o la pendiente de estas ondas. Cuanto más rápido para que los círculos se muevan porque necesita
alcanzar todo esto y el mismo tiempo o en el mismo fotograma, velocidad de fotogramas. Ahora pasemos a los ejemplos de ruido, ya que eso es lo que vamos a usar. Entonces hay algunas cosas que voy a cambiar
porque no vamos a usar un ancho y alto que solo se suele usar con la función sinusoidal porque es muy evidente dónde está el ancho y la altura. Pero por el ruido, voy a cambiar el ancho para escalar porque es zoom y escalar el aspecto de la onda. Y luego voy a llamar a la altura la fuerza. Porque cuanto más alto sea, más salgas de lo que sea que uses la función de ruido, que la vamos a usar con ángulo. Por lo que cuanto mayor sea
el resorte, mayor será la rotación o más rotación obtendrás. Y luego voy a cambiar cada ancho a escala. En realidad no te estás acostumbrando. Esta parte. Aquí lo vamos a hacer de manera diferente. Y fuerza para la altura. Y también aquí para hacer algo diferente. Y entonces esto también va a ser escala en hornos fue a cuerdas E. Ok, así que digamos que cambió esto a ruido. Entonces cualquier valor que salga de Aarón va a ser de 0 a uno y multiplicado por la fuerza, va a hacerlo más grande. Entonces le va a dar más fuerza. Y no voy a agregarle, función de
ruido funciona un poco diferente. Y tenemos que cambiarlo aquí también. Pero vamos a dejar todo lo demás igual. Y empezamos altura a la altura wyatt dividida por dos. Pero entonces también vamos a tener que mover esto hacia abajo en su lugar. Entonces plus. Pero vamos a ver realmente cómo se ve ahora y luego cambiarlo más tarde. De acuerdo, entonces la razón por la que lo empujé hacia abajo, así que dije y más altura dividida por dos. Es porque sube aquí cerca del 0. Por lo que voy a moverlo sumando altura dividida por dos estará aquí y luego lo mismo por aquí. Entonces solo lo estoy empujando aquí porque ahora la fuerza es de sólo diez. Y así nos va a dar un valor del 0 al diez. Como puedes ver, la ola es muy contundente. Y la forma en que podemos realzar esto o realmente mirar en una de estas piezas es ajustando la escala. Por lo que puedes necesitar números de habilidad muy grandes para conseguir movimientos muy suaves. Entonces si voy un 100, se
puede ver que es mucho más suave y fuera, pero entonces no hay rotación o hay mucha altura en esta ola. Por lo que también voy a aumentar esto. Y como puedes ver, estamos empezando a conseguir algunas formas lindas o un bonito movimiento fluido. Y si voy aún más alto para la rotación, entonces me pondría colina como movimientos. Y esto puede producir resultados muy bonitos si lo agregamos ángulo o
a la forma en que giran las formas. Y eso es lo que vamos a usar en el próximo examen. También, estamos usando aquí es un ruido unidimensional. Por lo que sólo estamos usando un argumento dentro de la función de ruido cuando en realidad se puede usar un ruido bidimensional, cualquier ruido tridimensional. Y sí, no lo voy a presentar ahora. Eso va a tener su propio capítulo. Pero ahora mismo, todo lo que necesitas saber es que la escala se acerca a la onda para que puedas ver, para que puedas verla mejor, tiene más movimiento fluido porque ahora nos estamos moviendo de 0 a la anchura usando sólo un trozo de la onda. Cuando, antes, cuando sólo eran diez, en realidad
pasábamos por mucho más. Y entonces la fuerza te da más altura. Ahora podemos usar la función de semilla NOI para darle la misma forma una y otra vez para poder ver cómo se mueven las cosas en realidad. Entonces si lo hago, solo le daré un 0. Puedes darle cualquier número que tú. Entonces, cada vez que lo ejecuto ahora mismo, vamos a tener la misma onda exacta. Yo quiero que te enfoques en la primera zona de la ola. Y voy a aumentar esto sólo un poquito. Como puedes ver, es la misma manera exacta de mirar, pero se está haciendo un poco más grande porque nos estamos acercando a ella. Por lo que en realidad está consiguiendo este trozo de la ola, más grande es este número. Entonces si vas 30, vas a ver que esto, se
va a hacer más grande. Y como puedes ver, es de la misma manera exacta, pero se está haciendo más grande. Y si voy 50, entonces es la misma onda exacta. Vamos aún más alto y te conseguimos un 100. Y se puede ver que es el mismo movimiento exacto, pero es mucho más grande porque lo estamos escalando hacia arriba. Y luego si aumentamos la fuerza, vas a ver que los picos van a
subir y las partes inferiores van a bajar. Por lo que esta parte va a salir realmente de la pantalla. Entonces si voy, digamos 400. Y se puede ver que es de las mismas maneras exactas, pero ahora va más abajo por aquí y más arriba por aquí. Si te confundes con esto, no te preocupes. Es la misma fórmula exacta que solo juegas con la habilidad y la fuerza. Y no vamos a cambiar tanto ni siquiera en función de ruido bidimensional. Y en la función de molestos tridimensionales, sólo va a ser exactamente lo mismo, simplemente agregando un valor y o un valor Z. Y lo veremos en el próximo capítulo. Y por ahora concéntrese en qué habilidad y fuerza debido a la onda de ruido.
4. Campo de flujo: Antes de que podamos empezar a crear obras de arte usando ruido, quiero mostrarte cómo se ve un campo de flujo, porque esa es básicamente la base de todo lo que vamos a crear. En el apartado anterior, mencioné que vamos a usar ruido para ángulo de movimiento. Entonces a medida que las formas se mueven a través de la pantalla, ya sea dirección de los límites del lienzo, pero luego agregando el ángulo o agregando ruido al ángulo. Propiedad de cada uno de estos factores son, cada uno de estos agentes está creando en realidad ese movimiento fluido. Simplemente voy a crear una cuadrícula simple y luego mostrarte cómo los ángulos se mueven realmente a través de la pantalla usando la función de ruido. Vamos a empezar por sólo usar un vector normal y luego
vamos a incorporar la función de ruido para ver cómo cambian los ángulos. Movimiento de fluidos credo a través de la pantalla. Para empezar, voy a guardar mi archivo porque quiero importar o quieres guardar en él el RL creando alguna pandilla para simplemente guardar eso en mi escritorio, lo
voy a llamar campo de flujo. Y luego dentro de este archivo, voy a crear un archivo de datos y así es como importas imágenes o formas tu proyecto. Entonces voy a copiar y pegar mi archivo SVG en el estado de más viejo. Y lo llamé sólo la flecha. Y es flecha muy simple que creé en Illustrator y la guardé como SVG. Voy a vincular esto en la sección de recursos. Para que puedas seguir conmigo. Ahora para crear el campo de flujo, voy a crear una clase llamada campo de flujo. Dentro del campo de flujo, voy a necesitar un vector p. Un vector b es más fácil de usar aquí porque tiene un ángulo ya incorporado en él. Pero en los próximos capítulos no van a usar un factor clave. Sólo voy a usar una posición pintoresca y una posición x e y. Pero ya que quiero crear una cuadrícula y quiero
almacenar las posiciones de cada uno de los vectores. Yo sólo lo voy a hacer de esta manera. Y voy a llamar a este campo. Por lo que la mayoría de este código es muy similar a la naturaleza del código. Es solo la forma en que creo la cuadrícula es un poco diferente. Y creo que en mi opinión, mucho más fácil de comprender sólo porque realmente
nos estamos centrando en la forma en que creamos una subvención en la vida real. En lugar de centrarse en la resolución de los grados y tal vez pensar un poco al revés. Entonces solo voy a usar columnas o filas porque es mucho más fácil para mí explicarlo. Es mucho más fácil para mí entender también a medida que lo atravieso. Voy a hacer sólo columnas y filas para el número de columnas y filas. Y entonces también voy a usar el ancho
y la altura de la columna para calcular el ancho y la altura de cada celda dentro de ese grano. Y luego dentro del constructor de esta clase. Yo estoy dando. Él parámetros, lo que se llaman columnas y las filas. Porque quiero que el número de columnas y filas dentro de nuestra clase sea decidido o medio programa por aquí. Y entonces estas columnas serán iguales. El primer parámetro son columnas de subrayado y filas. Y por cierto, puedes llamar a esto como quieras. Y luego ancho de columna. En realidad sólo voy a llamar a esto siluetas y a Scala. Y luego como es mucho más fácil entender que es suena altura y anchura. Y este va a ser el ancho de nuestro lienzo dividido por el número de columnas. Y luego vender altura, joven TV, la altura dividida por las filas. Y luego más vector de campo. Vamos a crear una nueva matriz vectorial con el número de columnas y luego el número de filas. Entonces esta es una matriz bidimensional. Y luego aquí dentro voy a crear una función inet. Para inicializar nuestra grilla. Simplemente usa un simple for loop gain de 0 a las columnas y luego anidado for loop para crear las filas. Entonces estas van a ser las columnas. Yo es menor que número de columnas. Y luego por último, lo vamos a llamar aquí. Porque quiero inicializarlo solo uno dentro de la función de configuración por aquí. Y luego vamos a intentarlo aquí, ahora
puede posicionar nuestra flecha. Estamos llegando a esas posiciones. Y para crear las posiciones, solo
estoy llegando a crear una posición x, y. Y para la exposición, los valores se van a multiplicar por la celda. Por lo que cada posición del ojo, cada punto del ojo va a significar multiplicado beta-célula con. Entonces el primero va a ser 0 benzoato multiplicado, así que eso va a ser 0. Y luego el segundo cuadrado, la segunda celda va a ser una multiplicada por n celda con, así que sean cuales sean las siluetas o si tienes una silueta de un 100 basado en el número de columnas y filas, entonces tendrás un posición de x a un 100 y así sucesivamente y así sucesivamente. Lo mismo vale para j en este momento es la altura de celda. Y luego voy a crear un vector P aquí, un vector p local. Y le voy a dar una posición 00 a, nuevo, sólo para ver cómo va a quedar. Y luego voy a almacenar esta posición donde este vector p dentro de nuestro campo para ser vector array en i, j para las filas en los puntos i. Y luego en el punto j, vamos a darle el valor del vector aquí dentro. Entonces esto básicamente va a ir por el primero. Y luego va a recorrer cada fila dentro de nuestra cuadrícula. Y va a dar a cada punto o a cada celda la posición usando este vector aquí dentro, una cuadrícula muy simple. Y te voy a mostrar más tarde dónde vamos a utilizar el axioma que posiciona aquí. Ahora sólo lo inicializamos. Vamos a exhibir. Entonces voy a crear unos métodos de visualización. Y aquí dentro sólo voy a hacer lo mismo para loop. Y ahora voy a dibujar lo que queramos. Aquí. Va a ser la forma de flecha usando esas posiciones que acabamos de crear. Voy a usar una matriz de empuje. Y hablé de esto de espaldas al curso de conceptos básicos. Si quieres saber más sobre la matriz push y la matriz pop. Pero te voy a dar un breve de lo que hacen. Por lo que básicamente la matriz de empuje y la matriz pop crea una capa diferente o una matriz diferente básicamente para cada forma. Entonces en lugar de mover las formas mismas, simplemente
voy a mover toda la capa. Entonces voy a crear una capa para la primera celda de la cuadrícula. Y lo voy a posicionar en esa zona donde quiero la primera
TB celular y luego voy a empujar una matriz diferente son otra capa. Y voy a empujar toda esa capa junto o en la posición de la segunda celda. Y luego haremos lo mismo por el resto del grano porque estamos usando el bucle for. Por lo que eso nos hará más fácil posicionarnos o dar forma en la posición 00 de cada capa. Además, hay que usar la matriz push y la matriz pop porque si alguna vez usas traducir, rotar y escalar fuera de la matriz push y la matriz pop va a realizar lo mismo. Digamos traducción. Si estamos usando translate para mover las formas, va a usar la misma traducción en la misma capa. Entonces Se va a mover hasta que salga de la pantalla. Porque va a mover la posición 00 del lienzo, que es la esquina superior izquierda a la derecha y luego hacia abajo en
función de la posición de las celdas hasta que se desplace a la última celda. Entonces va a ser el mismo. Pero si usamos matriz push y pop matrix, entonces estamos creando una capa diferente y luego estamos moviendo esa capa a la nueva posición. Por lo que va a mover el primero al 00 de todo el lienzo. Y luego se va a mover la segunda capa dos, la segunda posición, que va a ser 0. Y luego el ancho de celda y moviéndose a través de las columnas y luego a través de las filas. Entonces ahora puedo usar con seguridad Traducir, sabiendo que sólo va a hacer esa traducción en esa capa. Entonces voy a hacer lo mismo que hicimos aquí. Y no voy a usar siempre posición no tengo aquí sólo porque quiero mostrarles algunas cosas antes de usar la posición x e y. Entonces esto va a romper esto para nosotros. Por lo que voy a hacer yo multiplicado por celda con en drenaje, multiplicarlo por la altura celular. Y luego para rotar, voy a ser vector se dirige. Que básicamente es el ángulo en radianes. Entonces el encabezado básicamente te está diciendo hacia dónde se dirige el vector. Eso es más o menos. Entonces para obtener la rotación de cada vector o hacia dónde se dirige, entonces solo voy a usar INJ para obtener cada vector. Y luego voy a usar el método de encabezamiento. Y se puede imprimir esto si quiere ver los valores de la misma. Entonces voy a escalar la forma también al veinticinco por ciento su tamaño original porque es realmente grande Ojo ¿cómo está la mía a un 100 por un 100? Y como mi lienzo está dando para ser pequeño, 500 por 500, es más o menos mejor reducirlo al 25%. Y luego voy a dibujar las formas. Por lo que la forma se llama Flecha. En realidad no lo he creado. Por lo que estoy consiguiendo crear un ovario aquí usando clave. Yo lo voy a llamar. Y luego aquí dentro, lo voy a importar usando forma de carga. Se llama Arrow dot SVG. Y luego también voy a deshabilitar Skype. No tienes que hacerlo. Me gusta hacer que sea un hábito de deshabilitar el estilo de mis SVG por si acaso quiero cambiar el color más adelante. No me confundo por qué no está cambiando. Entonces ahora como deshabilitamos los estilos, en realidad
puedo cambiar el peso del trazo a yo básicamente Dustin todos esos para que no tengas que preocuparte por seguir exactamente. Puedes jugar con el peso del trazo y los colores y todo eso. Y luego voy a detener el looping en la función de sorteo porque solo quieres dibujar la cuadrícula y mostrarte cómo se ve. Ok, ahora puedo dibujar la forma por aquí. Ve que es una flecha, pero necesita una posición para la forma. Yo sólo voy a hacer 00 por ahora y ya veremos cómo arreglarlo más adelante si ves algún problema. Entonces eso es más o menos. Antes de crear la subvención, brevemente, inicializamos las posiciones de cada vector y luego lo mostramos. Entonces veamos realmente cómo se ve. Vamos a crear un campo de flujo fuera de la clase. Entonces esta es nuestra instancia y solo llámalo campo de flujo. Y luego lo voy a inicializar aquí. Entonces, por ejemplo, el campo de flujo. Y vamos a darle el número de columnas y filas. Voy a simplemente inicializar esta matriz aquí. Por lo que las columnas equivalen a 20. Y luego por filas, y voy a sacudir y darle 20 ya que tenemos un cuadrado. Y déjame arreglar esto. Y ahora dentro de la función de dibujo, solo
voy a hacer visualización de puntos de campo de flujo. Y debería funcionar ahora. Ok, no necesitamos arreglar ninguna de las formas. Se ve bien. Ahora veamos cómo podemos cambiar la dirección de estas flechas. Entonces para el 00 se está moviendo a la derecha. Y luego también de uno para X y 0 para y, se va a mover también a la derecha porque sólo lo estamos moviendo. O es como a una velocidad de uno hacia el lado derecho. Y luego si quiero que se vea hacia abajo, digo y uno. Y verás que todas las flechas realmente se moverán hacia abajo. Y ahora si quiero que se mueva diagonalmente a 45 grados hacia la derecha y hacia abajo. Sólo escribiré uno para X. Y ahora se mueve en un ángulo de 45 grados. Y ahora si quería ir en dirección opuesta, en el eje y, sólo haré uno negativo. Por lo que básicamente es como un movimiento cualquier forma a través de la pantalla en función de su velocidad. Entonces si dijiste x más uno, entonces sabemos que se va a mover a la derecha y decir y menos uno, eso va hacia arriba. Entonces si también quiero tomar esto a la izquierda, que es la dirección opuesta o la opuesta a la dirección predeterminada. Es uno negativo. Y si hago esto a las 0, verás que va a ir directamente a la izquierda. Si cambiamos esto a x e y, podemos ver diferentes rotaciones para cada vector en función de su posición. Por lo que se puede ver como nos estamos moviendo a la tarifa, la mayoría de ellos están mirando hacia la derecha y luego a medida que vamos a la baja, va a la baja. Y luego diagonalmente, en realidad va diagonalmente porque es entonces cuando la posición de la x e y son en realidad iguales o casi iguales. Y así dirigen a un ángulo de 45 grados. Y si hago x negativo, entonces en realidad estamos revirtiendo todo desde el lado derecho hasta el lado izquierdo. Y luego lo mismo para yY obtendremos una rotación diferente también. Entonces irá hacia arriba. Entonces ahora que entendemos esto, usemos realmente la función de ruido. Eso significa que antes era antes. Haz algo de eso, déjame arreglar estos problemas de traducción. Entonces como puedes ver, todo el lienzo o el lienzo más grande donde estamos mostrando nuestro campo de flujo está en el punto cero en ellos. Aquí hay vacíos. Entonces lo voy a mover a la derecha por 12.5 y luego hacia abajo 12.5. El motivo por el que estoy haciendo esto, porque cada flecha es en realidad un, un 100 pixels por un 100 pixels. Y luego escalarlos para mayo 25% tienen de cada uno de ellos 12.5, porque 25% de un 100 va a cumplir 25 píxeles por 25 píxeles por cada flecha. Y luego la mitad como Dios es 12.5. Y solo quiero moverme a la mitad porque quiero mover cada flecha al centro de la celda en lugar de en la esquina superior izquierda de cada celda. Y también voy a arreglar esto porque ahora me estoy secando en la posición 00 de cada uno. Pero como estoy moviendo todo el lienzo hacia la derecha y hacia abajo, tengo que mover cada forma hacia arriba a la mitad de su ancho, a la izquierda por la mitad de su ancho. Entonces podemos hacer eso usando el ancho de las formas. Entonces si hago la flecha negativa punto ancho dividido por dos, así y moviéndose hacia el lado izquierdo por la mitad de su ancho. Y luego me estoy moviendo hacia arriba. Nunca he corrido esto. Debería verse perfecto. Y así en lugar de usar x e y, ahora las funciones de ruido de Willie para el ángulo y luego voy a coseno y seno el posicionamiento del vector P. Porque sólo voy a llamar a este ángulo o theta, como quieras llamarlo. Y voy a mapear los valores. Ruido, como decía antes, ruido. Cualesquiera que sean los valores
que pongas dentro del ruido, siempre producirá un 0 o un valor de 0 a uno. Y queremos mapear eso de 0 a 10 a dos pi para ángulos. En el ejemplo anterior, realidad
dividimos los valores dentro de la función de ruido por la escala, y luego multiplicamos toda la función Noyce por fuerza. La única diferencia aquí es que no vamos a multiplicar por sus fortalezas, pero sólo vamos a mapear los valores producidos por la función de ruido, que es de 0 a uno, para evaluar de 0 a dos pi y el char, los valores mínimo y máximo de ángulos en radianes. Entonces solo voy a usar la función de ruido como lo hicimos antes. Voy a hacer sólo x dividido por escala de ruido. Y luego voy a mapear este valor de 0 a uno, que son los valores originales que sale de la función de ruido. A 0 a dos pi, que es un círculo completo. Y luego voy a inicializar la escala de ruido por aquí. Yo sólo voy a hacer 300. Y ahora voy a usar ángulo por aquí. Entonces para x voy a usar ángulo coseno. Y luego para y voy a usar seno del ángulo. Y entonces si corro esto ahora mismo, vamos a ver un movimiento que fluye. No es tan aparente porque es una función de ruido unidimensional. Por lo que voy a presentar brevemente la función de ruido bidimensional. Entonces lo único que vas a cambiar es agregar otros argumentos para por qué. Y también lo vamos a dividir por la escala de ruido. Cuando ejecutemos esto, encontraremos que el movimiento es más fluido porque es una matriz bidimensional. Y como puedes ver, todo se mueve hacia abajo por aquí y luego empieza a girar en función de las funciones de ruido. Entonces si cambias la escala de ruido, así digamos hazlo 100, verás más rotaciones. Y luego cuanto más alto sea verás menos rotaciones porque como vimos en el ejemplo anterior, cuando hablamos de escalar ruido o escalar onda de ruido. A medida que aumenta la escala, las ondas en realidad se están volviendo más lisas porque estamos
acercando a una parte o al lado izquierdo de la onda. Por lo que el movimiento o el círculo utilizado para mover velocidad más lenta se está moviendo a través del primer trozo de la ola en lugar de mover tornillo más colinas y partes más bajas de la ola. Por lo que una pandilla de cientos para producir más ángulos. Y luego cuanto más alto vayamos, va a ser más suave y movimientos. Entonces, como puedes ver, los ángulos son en realidad más suaves. Y porque no tenemos semillas molestas USE diferentes valores cada vez. Entonces si vuelves a 300, podemos empezar a ver diferentes ángulos en. Si pones unas purinas encima de estas, y luego sigues el ángulo de cada una de estas flechas. Encontrarás que en realidad los círculos se están moviendo con el ángulo o hacia la dirección de las flechas. Esto solo puede crear bonitas obras de arte. Si juegas con la forma que estás usando, puedes crear cualquier archivo SVG o cualquier programa que pueda producir SVG al que pueda importar aquí. Y jugar con la ola que esto crea. Y también jugar con el número de columnas y filas. Porque cuanto mayor sea el valor para esos, vas a ver mejor las formas porque entonces no vas a ver tanto las formas, pero vas a ver más de los movimientos o una ola. Entonces si creas una línea, por ejemplo, vas a ver mejor la onda, la flecha que Daniel zapata cuando los usuarios en la naturaleza de los ejemplos de código es mucho más fácil ver la onda a través porque, es sólo una línea. No es una flecha que se vea así. Puedes crear el área tú mismo o puedes encontrarla en los recursos por la naturaleza del libro de códigos. Puedes encontrar todo el código en la sección GetHub. Entonces puedes estudiar eso también porque creo que su forma de hacerlo o el proceso, aunque sea diferente, puede producir otros resultados. Porque también te muestra cómo hacer un agente o un robot, sigue las flechas en la parte superior de él buscando el valor de la rotación y movimientos y haciendo que siga eso. De nuevo, es un poco diferente. Entonces si tienes alguna pregunta, solo avísame y quizá te pueda ayudar con eso también.
5. un agente: Por lo que para este capítulo se hablará más de cómo moverse usando la función de ruido en lugar de simplemente mirar la rotación como lo hicimos antes. Ahora para esta vez, no
necesitamos una clase para campo de flujo, solo
necesitamos una clase para un agente que se va a mover a través de esta reina. Realmente no necesitamos ver la rotación. El único que necesita el agente para moverse es entender su velocidad, decide que necesita ser, y qué tipo de rotación obtendrás en función de la función de ruido. Entonces, empecemos por crear una nueva pestaña. Y luego dentro de aquí, sólo escribiré mi nueva clase que se llama agentes también. De acuerdo, lo primero que necesita el agente es una posición x e y y velocidades y el tamaño. Empecemos por anotar al médico y luego ver cómo se
mueven las cosas en realidad en ellos reinicie incorporando tamaño y veremos dónde vamos a usar las velocidades. Entonces de nuevo, solo empieza con x e y. así que x e y se va a utilizar de la misma manera que usamos en el campo de flujo. Pero esta vez vamos a usar la velocidad para mover a nuestros agentes por el campus. Entonces voy a inicializar x ancho dividido por dos porque no quiero usar aleatorio. Y luego se mueve fuera de la pantalla o va de un borde de ellos hacia afuera porque no voy a revisar límites todavía para la pantalla o nunca en realidad porque me gusta cuando
salen de la pantalla o llenan la página con el diseño. Y luego voy a hacer y, x altura dividida por dos. Y tengo mi ancho y altura AD 500 por 500. Y luego para la velocidad, le
voy a dar una velocidad de, digamos una. De acuerdo, ahora, este flujo se está moviendo y solo vamos a usar un peso de golpe puntual. Y luego voy a dibujar mi x e y para ejecutarlo. Y podemos ver clase de agente. Vamos a inicializarlo. Y no necesitamos ningún parámetro. Yo sólo voy a hacer todo dentro de la clase y luego en exhibición. Y si ejecuto esto, veremos el punto en el centro. Genial, ahora es el momento de usar las actualizaciones. En el método de actualización, tendremos que mover X e Y usando coseno y seno como hicimos en el ejemplo de campo de flujo. Entonces en realidad inicializamos el médico P básicamente dijo, dame un vector nu p en la posición x en coseno de ángulo y, seno del ángulo. Entonces esto es básicamente lo mismo aquí, sin embargo, nos estamos moviendo. Entonces necesitaré agregar el coseno. El puesto de extra a la posición anterior o al punto spread out, entonces voy a hacer lo mismo. Ahora vamos a necesitar un ángulo. Entonces acabo de crear y el ángulo va a funcionar ya que estamos haciendo lo mismo que hicimos en el campo completo. X dividido por y dividido por escala. No va a usar unidimensional, bidimensional. Y luego aprenderemos sobre la celosía tridimensional. Y entonces lo estoy multiplicando por. Entonces inicializaré los de aquí. No vamos a hacer escala a los 300. Digamos diez. Ahora esto no va a coincidir porque todavía no agregamos la actualización por aquí. Entonces voy a hacerlo, y si vamos a
empezar y ahora le podemos sumar la velocidad. Esto aumentará la velocidad de la luz. Entonces tres, por ejemplo, va a ser más rápido. Y cuanto más rápido se le dan muertes musulmanas porque cuanto menor es el desorden de velocidad los movimientos porque
no hay espacio en el medio porque te estás moviendo solo 1 a la vez. Cuando tengamos SP3. No obstante, es mover píxeles de barrido a la vez, por lo que es más complicado. Entonces hagámoslo, por ejemplo, y verás que tiene más espacio. Esto también se puede utilizar a este ritmo y aumenta v En esto se convierte en peinado. Entonces ahora nos vamos a quedar con uno y ver cómo se está moviendo en realidad. Entonces como se puede ver, los musulmanes es muy suave porque tenemos una escala muy alta. Si disminuyo estos 400, digamos que vamos a ver más rotaciones porque ahora se está moviendo a través de más puntos altos o más puntos en la ola. Y si aumento esto, digamos 50, vas a ver más rotaciones. Entonces piénsalo como si te estuviera dando más, consiguiendo la rotación, más fuerza. Por lo que tiene la parte superior tipo de más ángulos y luego podemos agregarle un color también. Entonces, ¿qué se entiende? Lo mismo. A lo mejor cambiarlo a tres para que puedas ver un poco de un cambio de tamaño por aquí. Y luego inicializaré, le daré un trazo, color. Y eso es todo. Eso es todo lo que necesitas hacer para conseguir todas estas increíbles ilustraciones que ves. En el siguiente capítulo, veremos cómo podemos crear una matriz de agentes. Muévete aleatoriamente a través de la pantalla para cada uno de los ligandos.
6. Muchos agentes: Ahora vamos a crear nuestra matriz de agentes. Y antes de que pueda hacer algo de eso, quiero agregar la matriz de colores para que podamos aleatorizar el color también. De acuerdo, tendremos que cambiar esto a una matriz. Y luego por aquí, en lugar de inicializar el propio agente, vamos a inicializar la matriz y yo solo voy a hacer un 100 por ahora. Y luego dentro de un bucle for que es menor que la longitud de los agentes. Vamos a inicializar nuestros agentes en el agente i. Así que para cada evento va a ser o para cada elemento dentro de la matriz van a suceder. Y luego aquí, puedo usar el bucle para agente en cada agente. Entonces un bucle foreach, porque no necesitan usar el índice. Por lo que sólo usaré para agentes, agentes. Por lo que esto asegura que mirará más a través de todo el asunto. Ojo derecho o la posición por aquí. Y no cambiamos de agentes. Y ahora cada agente se inicializa ese ancho dividido por dos y alto dividido por dos. Y todos tienen el mismo movimiento porque no tenemos una velocidad aleatoria o tamaño aleatorio. Ahora si ejecuto esto, verás que todos están encima el uno del otro. Por lo que tienen la misma velocidad y el mismo tamaño. Por lo que no verás ningún cambio por aquí. Pero primero cambiemos el tamaño. Voy a aleatorizarlo de uno a cinco. Ahora si corro esto, verás que es mucho mejor porque ahora los cinco están dominando los movimientos. Los otros están por debajo o por encima, por lo que no los puedes ver. Eres menos velocidades aleatorizadas. Por lo que se puede ver porque ahora tienen una velocidad variable. Y así algunos de ellos se están moviendo más rápido. Y se puede ver que tal vez uno de los más pequeños se está moviendo más rápido. Y así quedó claro que esto es más pequeño. Entonces es como si fuera de tamaño variable o si es el mismo con interés, pero no lo es, son múltiplos. Ahora vamos a aleatorizar los colores para que los veas encima uno del otro en la misma línea. Antes de empezar a aleatorizar la adquisición del axón, vamos a simplemente aleatorizar la posición o el índice que estamos obteniendo de esta matriz. Entonces llamo a esta causa, voy a usar la llamada matriz. Y una vez que obtienes un índice aleatorio, por lo que será un aleatorio de los colores que fueron tan lo que sea. Entonces si alguna vez anuncio por aquí. Va a ser consistente y no necesitará cambiarlo en libros. Pero esto se va a quejar porque no es entero. Los índices tienen a enteros. Entonces voy a simplemente lanzar esto en un entero. Y ahora si corro esto, veremos que hay múltiples colores. Por lo que hay de hecho múltiples agentes uno encima del otro. Entonces ahora vamos a aleatorizar realmente la posición x e y. Por lo que quería ser de cualquier área de 0 a la anchura, de 0 a la altura. Ahora esto debería funcionar en basado en Illinois k_l y eres buena cepa, esto va a verse diferente. Entonces cambiemos su escala de ruido. Si reducimos esto a diez, tal vez incluso reducir el tamaño un poco a tres. Nuevamente, para cumplir con la velocidad en lugar de, en lugar de de uno a tres negativos o incluso más lento. Entonces voy a ir negativo 222 porque quería moverme en ambas direcciones y con solo una dirección tanto para la x como y y la velocidad se está utilizando tanto para x como para y ¿De acuerdo? Y se puede ver que es mucho más agradable, pero no lo es. Los vehículos se mueven hacia arriba mientras que otros se mueven hacia abajo. Y lo mismo va para x e y. de izquierda a derecha o de derecha a izquierda, podemos aumentar el número de agentes en este momento. Entonces hagámoslo 1000. Y en la agencia más tener el episodio más bonito que en realidad me gusta ir a tamaño muy pequeño. Por lo que el mío suele ser de cinco a uno o dos. Es si tienes líneas muy delgadas, diez, se ve más bonito. Y hasta voy a cambiar el fondo porque el peso parece ser un poco primero a veces. Y colores. Entonces ten un color cuaderno de bocetos, hay una pequeña página. Se ve bonito. Y también puedes agregar otros colores. A lo mejor podemos esperar un año y porque optamos por elegir los índices de los collares esa longitud. Entonces, sea cual sea la longitud que tengas aquí, lo que
significa que no arruinará tus llamantes se usan en declara resplandor. Entonces hay hacer que todo sea dinámico es mucho mejor, mucho más bonito. Ahora el blanco agrega un bonito toque al diseño. Entonces solo necesito hacer ahora mismo es solo jugar con nosotros, matar. Una de mis escalas favoritas no es 1000, así que me gusta usar 3 mil porque es mucho más suave y luego me gusta agregar una rotación a eso. Entonces tal vez déjame conseguir 30, un Kindle aún más alto a 50 y aún así lucir bien. En realidad le da un trabajo de pintura muy abstracto que es aún más rotación se agrega cuando la onda es muy zoom, entonces espera, aquí. Son 3 mil rotaciones más suaves o rotaciones más suaves que vas a tener. Entonces si lo hago, digamos 200, vas a ver que todos se mueven la misma dirección o por encima del lado de escena de la ola. Pero luego están girando con un ángulo muy alto. Y así hicieron el mejor trabajo. También podemos aumentar esto por decir. Y como no teníamos ISI y semillas aleatorias, va a cambiar cada vez. Pero si quieres, lo puedes ver antes de que incluso estés centralización. Entonces sí, está justo aquí. Y solo siempre empezar con un 0, solo año récord, lo que sea. Sueño aleatorio por los colores. Porque la única aleatorización ahorita que tenemos es porque, y verás que vamos a conseguir lo mismo. Pero ahora también quiero mostrarles si invierto esto, otros van a mirar. Entonces si he llamado mal es más pequeño, entonces la señorita Frank. Entonces digamos de uno a 2 mil por aquí. Y tu fuerza en 300 nanoscale y vas a tener más rotaciones y menos de un movimiento suave. Entonces incluso si miras algunas sondas por aquí, hay mucho movimiento ruidoso,
tipo de similitud aleatoria que se adhieren a su posición, lo cual es mucho más bonito de lo que está bien, bajan 2000 millones. Se puede ver su rotación. Esta es en realidad una de mis palabras favoritas por aquí. Es mucho más bonito que éste porque te da variación en formas también. En el siguiente capítulo, hablaremos un poco sobre cómo
puedes agregar una tercera dimensión a tu anuncio.
7. Ruido tridimensional: De acuerdo, entonces para el ruido tridimensional, solo
necesitas agregar un argumento más a la función de ruido. Entonces ya tenemos x e y, y la tercera dimensión naturalmente va a ser fácil. Esto es sólo a la nomenclatura convencional para tridimensional, que es x, y, y z Pero siéntete libre de llamarlo como creas que tiene más sentido para tu trabajo. Entonces solo agregaré Z por aquí y luego lo inicializaré con un valor aleatorio. Y voy a lograrlo a partir de 2.4. Entonces terminaré por aquí. Y santo garners funcionan y se incrementan aquí abajo. Ahora incrementado en 0.1. Y eso es más o menos para la tercera dimensión. Es muy sencillo. Y la razón por la que no lo estoy dividiendo por la escala de ruido porque quiero que se influya o quieres que la rotación sea influenciada por más que solo x e y. porque si lo divido por el NusCale no va a hacer tanta diferencia, pero quiero que z conduzca un poco más la rotación. Y antes de ejecutar esto, sólo
quiero prefacio que la mayoría del trabajo que hago, o en realidad todo el trabajo que he hecho antes es sólo bidimensional y ruido. Por lo que nunca he trabajado realmente con ruido tridimensional como en ilustraciones de salida que comparto porque sigo experimentando con lo que se ve bien. No obstante, creo que presentarlo aquí es muy importante. A pesar de que no tengo ejemplos con la tercera dimensión. Creo que es integral para entender la función de ruido. ¿ De acuerdo? Y yo lo voy a ejecutar. Y luego empezaremos a hacer algunos ajustes para ver qué cambios. Ahora verás que la rotación es muy ruidosa porque está girando mucho más de lo que solía. Pero podemos arreglar esto ya sea cambiando el valor aleatorio, el valor aleatorio inicial para z por aquí, o podemos reducir, que es lo que me pareció más efectivo es disminuir la cantidad en la que estamos incrementando Z. Entonces si hago 0.01, me
va a dar menos rotación que antes. Por lo que sigue muy girado, pero como puedes ver, no
es la misma rotación que antes. Por lo que se está moviendo un poco y luego sus
360 grados girando y moviéndose de nuevo en unos movimientos muy fluidos. Por lo que sigue siendo te da un resultado muy bonito, pero no se ve tan bonito con los colores. Y además no se ve tan bonito con colores opacos. Entonces voy a cambiar primero este 250 sólo para ver qué pasa. Y de inmediato es mucho mejor porque empiezas a ver el movimiento un poco mejor. Pero aún no me gustan los resultados con colores. Por lo que estoy llegando a crear una matriz Clara diferente. Yo sólo voy a hacer de esta manera. Ahora esto no se ve tan bonito. Entonces voy a cambiar esto a 0.001, esto para reducir la cantidad de rotación que sucede. Por lo que es menos frecuente que antes. Y puedo ver que se parece más a movimientos de cabello o movimiento de humo. Y se ve mucho más bonito incluso con menos capacidad, se verá más bonito, pero tendrás que esperar un poco más porque va a tener que acumular el color. Por eso no necesariamente trabajo con una tercera dimensión, porque me gusta mucho trabajar con colores. Si bien esto parece muy interesante, no
parece tan intrigante como un querido ser grande porque mi trabajo tiende a ser muy colorido. Pero si eres alguien que trabaja con lote blanco y negro, entonces esto se vería perfecto incluso en blanco y negro, o hacer un tono colores porque te dará un diseño multidimensional. Y también puedes jugar con el ruido matar o volver a escuchar. Entonces hagámoslo 3 mil. Obtendrás más círculos en el diseño. Y entonces si reduzco esto a diez, podemos ver que hay menos rotación por completo. Pero entonces la z influye en LA rotación, por lo que sigue girando pero en un camino mucho más suave. Y también está distorsionando, sí da forma o distorsiona el flujo real de lo bidimensional en formas. Y a veces eso puede dar unos resultados muy bonitos. Es una fórmula muy sencilla. Y con sólo cambiar las bonitas funciones de una función de ruido bidimensional a una bonita función tridimensional se puede obtener con una multitud de resultados diferentes. Tendrás que jugar con él, ver qué funciona mejor para ti. Juega con el color. Y también vamos a hablar de técnicas de clonación y el uso formas distintas a las reinas con el fin de hacer tu diseño. Pero antes de que podamos hacer algo de eso en el próximo capítulo, voy a presentar cómo hacer estático este diseño.
8. Ruido estático: Trabajar con diseño estático es más divertido para mí que trabajar con un diseño dinámico en movimiento. Principalmente porque me gusta ver los resultados en cuanto
ejecuto el programa en lugar de esperar a que termine la animación. Y hacer estático este diseño es muy sencillo y los resultados son completamente diferentes. Vas por los mismos caminos por los que atraviesa la animación. Pero se va a ver más vector. Y se verá como si utilizaras curvas
BCA en Adobe Illustrator e hiciste este diseño a mano. Y luego podrás obtener más variaciones porque
solo puedes ejecutar el programa y guardar cada página que obtienes. De acuerdo, entonces vamos a empezar desde donde lo dejamos antes, pero voy a quitar todo lo que hicimos por el ruido tridimensional. Porque de nuevo, suelo trabajar con ruido bidimensional. Y luego voy a quitar esto también. Entonces no necesitamos que sea transparente y entonces no estábamos dejando el tamaño también. De acuerdo, así que para nosotros crear este diseño estático o crear vectores son curvas ocupadas fuera del movimiento. Vamos a usar la forma de inicio, una entrada, y usar el vértice actual dentro de ella. Y vamos a usar un bucle for aquí, porque ahora no sólo nos estamos moviendo a lo largo, tenemos que pensar en el movimiento como un bucle for. Entonces antes se movía porque estaba en la función de sorteo y la función de sorteo es básicamente un bucle salvaje que nunca termina. Pero quiero tener más control sobre mi diseño. Entonces voy a usar un bucle for con una longitud fija. Entonces voy a crear longitud aquí. Voy a convertirlo en un entero. Y empezaremos con diez. Entonces voy a dejar el trazo. Y la coloración misma velocidad x e y son iguales. Pero en lugar de dibujar un avión, voy a usar la forma de inicio. La forma puede dibujar usando vértices en su interior. Y voy a usar el
bucle for menor que los incrementos de longitud. Ahora si dibujo el vértice aquí y luego entro aquí en exhibición una actualización los agentes, lo que estoy tratando de hacer por aquí, va a estar muy roto porque quiero dibujar cada vértice al valor medio desde aquí. Por lo que voy a simplemente dibujarlo dentro de la función de actualización. Y luego voy a llamar a la función de actualización dentro de mi bucle for. Entonces básicamente dentro de mi for loop, cada vez que estoy obteniendo un nuevo ángulo y luego estoy cambiando la posición. Entonces fue lo mismo que hicimos aquí cuando llamé a los métodos de actualización. Porque dentro de la función de sorteo estábamos actualizando. Entonces básicamente lo que estamos llamando la función de ruido una y otra vez. Y entonces estamos llamando a x e y, o estamos incrementando x e y cada vez por sus valores son por estos valores. Entonces ahora en su lugar, voy a poner todo esto dentro del bucle for porque ya
no queremos dibujar loop ni la función draw que bucles para siempre. Y voy a usar solo vértice curvo es que quería curvar extremos otra vez para ponerlo en x, n, y. y entonces voy a llamar a la función de actualización dentro de mi bucle for. Entonces ahora recreamos lo que estábamos haciendo dentro de la función mandíbula. Pero dentro de ellos estaban controlados bucle. Y entonces antes de ejecutarlo, tenemos que estar seguros de que esto no es bucle porque no
queremos bucles para seguir para siempre. Y luego voy a quitar la función de actualizaciones de aquí. Genial. Ahora porque hicimos el color del blanco jurado por este ambiente tridimensional, tu material vuelve a mis colores. De acuerdo, ya estamos viendo algo, pero debido a que nuestra longitud para el bucle for es muy pequeña y empezó a asistir, estamos viendo líneas muy pequeñas. Entonces si aumento esto a, digamos 30, ahora estamos empezando a ver mucho mejor el diseño. Además, voy a tener que quitar la película, así que sólo voy a hacer quieto. Ahora ya no nos estamos llenando. Se ve mucho más bonito. También podemos aumentar las velocidades porque ahora si aumento la velocidad, sólo va a hacer
que mi longitud sea aún más larga porque algunos, un vértice a otro, hay una velocidad de píxeles de corte en lugar de solo dos. Entonces ahora si corro esto, vas a ver más movimiento fluido. Por lo que tienes que equilibrar tipo de velocidades y tu longitud de cada uno de estos caminos. Cuanto menos velocidad te va a dar una longitud más corta. Pero entonces puedes aumentarlo a partir de aquí y obtendrás resultados similares. Además, lo que es bueno de los diseños estáticos es que puedes mirar las almohadillas de tu función de ruido de inmediato. Entonces si quieres probar algo, tal vez quieras hacerlo estático y luego comienzas y quieres los visuales,
el diseño en movimiento, entonces puedes miniTest usando esto y luego seguir adelante con los valores que de Newton re-escalar enojado string. Y si hago lo contrario como lo hicimos antes, así que voy a hacer un 100 por aquí y luego quizá mil y por aquí,
vas a ver un diseño que se ve más como garabatos o los arañazos que datos en un pedazo de papel lo usando colores. En si quieres aumentar el número de agentes, puedes hacerlo aquí también. Y te dará un diseño más denso. Pero una de mis miradas favoritas sobre este diseño es si volvemos a 300 y luego este, luego reducir el número de agentes retroceden 2 mil, solo para que lo veas mejor. Y luego en lugar de trazo, en realidad lo hacemos llenar y aquí no hacemos trazo. Y ahí es cuando las cosas empiezan a volverse muy, muy interesantes para mí. Ahora la longitud es muy, muy alta, sobre todo para rellenos. Cuanto mayor sea la longitud, chunkier se va a ver el relleno. Si alguna vez has trabajado con Adobe Illustrator y has trabajado con la herramienta Bessie o la pluma Curve en cualquier otro programa también. Funciona igual. Si tienes rotaciones muy fuertes en tus curvas, entonces habrás sentido que sella los huecos desde el primero hasta el último punto. Entonces si quieres reducir esto, puedes jugar con la longitud. Por lo que tendrás menos rotación para cada sombreros o cada grupo de vértices que están conectados entre sí. Pero entonces vas a tener que ver el mismo look en el mismo diseño usando esas curvas. Entonces subamos. 3030 puede producir resultados mucho más bonitos. Ahora también puedo aumentar la velocidad. También puedo aumentar el número de agentes. Ahora se parece más a una ilustración de planos, sobre todo si usas colores que imitan un poco más a los planes. Entonces todos los greens. Y entonces tal vez podamos reducir esto, incluso aprender. Por lo que tenemos menos rotación. Vayamos por aquí y vamos a aumentar los bonitos Celta 3 mil, así que tenemos menos rotaciones también. Y entonces voy a aumentar ahora la rotación un poco, o la fuerza de sus valores de ruido o podemos jugar con ella. Podemos bajar con los pies. También puedes ir de uno a dos. No necesitamos ir en indicaciones, sólo en una dirección. Todavía producirá resultados muy bonitos. Se puede subir hasta 1000, y eso es literalmente lo que hago cada vez. Yo quiero ver un diseño que se ve bien. Probé un escritorio blotter valores juntos hasta que algo hace clic o hasta que algo sucede. Por eso también me gusta trabajar con semilla de ruido, la semilla aleatoria. Creo que esta es una de las razones por las que no estamos consiguiendo un equilibrio diferente. Sí. Ahora estamos recibiendo muchas variaciones diferentes. También podemos aumentar esto a un 100 indica ahí para que puedas conseguirlos más diseño de rotación pero usando este estilo vectorial. Y ahora conseguirás este diseño, que también luce muy, muy interesante. También quiero introducir en el siguiente capítulo cómo jugar con las formas en este diseño directo para llegar a diseños de tu ellen
basados en las formas que estás usando en seguir los caminos de función de ruido.
9. Diferentes pinceles: Hablé de crear formas personalizadas en mi curso anterior. Volver a lo básico. Podemos hacer eso aquí para pintar estos movimientos fluidos con algunas formas interesantes. Esto es muy similar a crear Photoshop
personalizado o procrear presiones si alguna vez lo has hecho, cada pincel puede dar una textura distinta produciendo resultados de variante en lugar de que dibuje, sin embargo la computadora sea, crearé un cepillo contigo y después te mostraré algunos de mis diseños con otros pinceles y te pasaré brevemente por los componentes de los cepillos. De acuerdo, a partir de donde lo dejamos en el capítulo anterior o en la lección anterior, sólo
tendremos que cambiar la forma en
el momento que estamos dibujando usando el vértice actual. Porque cambiamos a nuestro diseño dinámico en un diseño estático. Y vamos a seguir en eso. La única diferencia es que vamos a crear una función de pincel. Entonces vamos a crear eso por aquí. Voy a llamarlo un pincel. Y va a ser un método dentro de nuestra clase o clase de agente. Y para mi pincel, voy a necesitar una exposición y la posición y también un conteo. El conteo no es necesariamente necesario aquí, pero me gusta añadirlo para añadir ese efecto de aleatoriedad en el pincel. Entonces empecemos con una x e y primero. Entonces haré posición de flotación x, solo lo llamaré. Y al otro se le va a llamar posición. ¿ Por qué? Porque no quieren confundirme con la x e y dentro de mi clase cada aquí. Entonces simplemente lo cambié. Y ahora aquí dentro vamos a crear nuestro pincel. Por lo que dijo que queríamos crear un pincel de círculos aleatorios. Entonces para un pincel de círculos aleatorios, vamos a necesitar unos cuantos círculos. Entonces empecemos por realmente crear el círculo y luego cambiaremos eso en un enfoque más dinámico. Entonces empezaremos primero con, digamos secando tres círculos. Y luego voy a poner al primero en posición aleatoria de cinco a diez, y luego otra posición aleatoria para el Y de cinco a diez. Y luego le voy a dar un tamaño aleatorio porque círculo toma tres argumentos en contraposición a la elipse que toma cuatro. Debido a que es un círculo, el ancho y la altura son iguales. Por lo que sólo va a ser un tercer argumento en lugar de un tercer, cuarto argumento para ancho y alto. Entonces aquí sólo voy a hacer un ohm cinco, o de uno a cinco. Entonces conseguiré un tamaño aleatorio de uno a cinco, vale, y haré lo mismo por todos estos. El motivo por el que dije de cinco a diez es porque quiero contener esta forma en un solo cuadrado porque un pincel suele tener su propio contenedor. Y para poder hacer eso, voy a tener que empujar una matriz y luego traducir toda esta caja de formas. Entonces todo el pincel usando la posición x y la posición y. así que voy a hacer sólo traducir y luego la posición x y la posición y. y porque yo Todos, quiero que la traducción sólo suceda para cada fresco por separado, voy a tener que empujar una matriz para cada uno de ellos. Entonces push matrix y pop matrix. Entonces eso produce un nuevo lienzo para nosotros y luego traducirá eso a donde quiera y dentro de él. O ese pincel entero va a ser tres círculos de posicionamiento aleatorio. Y comenzarán desde la posición x y la posición y. entonces cinco a diez son en realidad cinco píxeles de la posición x y diez píxeles de la posición x Y lo mismo va para y también. ¿ De acuerdo? Y ahora llamemos al pincel por aquí en lugar del vértice actual. Y haremos x e y, como hicimos con el vértice actual. Voy a aumentar un poco el tamaño aquí porque no creo que lo vayan a ver con claridad. Y voy a disminuir la longitud a sólo una porque quiero pasar aquí dentro. Y luego quitaré la forma de inicio y el comercio porque ya no estamos dibujando con vértices. Y también me quité el no Stroke y tuve un trazo de negro. Y entonces aquí dentro quiero usar, digamos dos agentes porque realmente quiero verlo con claridad. ¿ De acuerdo? Por lo que esto se está secando tres círculos uno encima del otro y éste también. Yo quiero cambiar la aleatoriedad, así que voy a hacer 15 a 20 por aquí, y luego 22, digamos 30 por aquí. Porque quiero cambiar, cambiarlo un poco en el eje x para que podamos verlo. Por lo que podemos ver que hay tres círculos. ¿ De acuerdo? Entonces aquí hay tres círculos y esto también son tres círculos. Y a medida que lo
ejecutemos, obtendremos ubicaciones aleatorias para el eje x y el eje y. Ahora en lugar de dibujar los tres círculos así, voy a cambiarlo en un for-loop. Entonces lo haré por entero i es igual a 0 a for-loop normal y es menor que, digamos tres. Y lo incrementaremos, y luego tendremos un solo círculo. Entonces ahora reducimos nuestro código en dos líneas a líneas
innecesarias porque de esta manera conseguí los tres círculos y todos
tienen ubicación aleatorizada para x e y. bien, y si ejecutamos esto, ahora, vamos a conseguir similares resultados al anterior. La única diferencia aquí es que antes teníamos un rango diferente para aleatorio. Aquí tenemos el mismo rango. Entonces tal vez puedas hacer THE range un poco más grande para obtener mucha más variación y el posicionamiento. Entonces si hago 15 a 20 por el eje x por aquí, o 5-20 en realidad. Entonces solo estoy aumentando el rango y
verás que el posicionamiento tiene un poco más de variación. Por lo que sólo lo traeré de vuelta a diez. Y aquí es donde entran los conteos o un parámetro del recuento, porque quiero que esto no sólo sea tres, quiero que sea un valor aleatorio basado en lo que lo entrego aquí. Entonces solo voy a hacer conteo de enteros. Y voy a poner eso como la longitud para la matriz. Y aquí dentro voy a decir valor aleatorio de uno a cinco. Entonces ya sea lo tendré. Un círculo, 23 hasta cinco, y lo estoy redondeando. Entonces en realidad no son hasta cinco, es hasta cuatro. Si quieres que sean hasta cinco, entonces sube hasta seis. Pero me quedaré con cinco. Y luego tienes que lanzarlo en un entero. Porque aquí tenemos un entero dentro del bucle for porque contar siempre es no decimal cuando se trata de cosas como esta. Por lo que puedo dibujar medio círculo, por ejemplo, tres círculos por la mitad, así que tiene que estar dentro. Y ahora si lo ejecuto, o voy a conseguir 123 o cuatro círculos uno encima del otro. Entonces si voy por aquí y hago 100, conseguiré mucho más. Y entonces puedo volver a aumentar la longitud a, digamos diez. Y podemos quitar el trazo para que podamos ver mejor el diseño. Y también voy a aumentar la velocidad porque quiero más huecos
entre los círculos para que pueda obtener el efecto de ese pincel. Por lo que se ha incrementado esto a 20 y aumenta la fuerza del ruido a mil porque
quiero ese movimiento que fluye y reducir esto a diez. Y entonces incluso voy a hacer este 1000 o hasta 4 mil. Ahora estamos consiguiendo que los círculos aleatorios se pinchan en el diseño. También podemos reducir el tamaño ahora mismo porque no tengo muy grande desde antes. Entonces de uno a cinco, diría que es realmente bueno. Al azar sólo va a copiar y pegar una forma diferente de colorear esto, porque quiero verlo un poco mejor porque el efecto no siempre, o los efectos de otros pinceles no siempre ven bien cuando es de la misma manera o coloreándolo. Por lo que a veces tienes que simplemente cambiar la forma en que estás coloreando tus diseños para poder ver los efectos de lo que estás creando. A veces lo que estás creando en realidad se ve genial si tal vez usas solo dos colores. Pero aquí, en realidad voy a llamar a esta paleta para. En lugar de cambiarlo tres veces aquí, solo
estoy puedo cambiar el nombre de la matriz. Entonces lo que estoy haciendo aquí es mapear el seno del ángulo por aquí de uno negativo a uno a 0 a la longitud del punto de las paletas. Por lo que quiero mapear los valores del ángulo sinusoidal. Entonces sea cual sea su resultado de la función de ángulo sinusoidal, quiero que se mapee a estos colores o a los índices de estos colores. Y los índices van de 0 a uno menos que la longitud del punto de la paleta. Entonces lo estoy limitando por aquí. Tan solo para evitar cualquier valor engañoso son cualquier error. Entonces voy a decir de nuevo, índice va a igualar, constreñir el índice de 0 a la longitud de punto de la paleta menos uno. Por lo que nunca conseguiremos array fuera de excepción enlazada. Y luego voy a usar eso para los colores. Entonces en lugar de colorear aquí usando el aleatorio, que en realidad voy a cambiarlo para más tarde. Y sí, en lugar de hacerlo aleatoriamente por aquí, lo
voy a hacer dentro de la función de actualización. Y voy a llamar a la paleta con el índice que acabamos de crear. Y por cierto, todo el código para los diferentes pinceles y la técnica de coloración se vinculará en la sección de recursos de este curso. Entonces vamos a ejecutar esto y a ver qué pasa. De acuerdo, tengo que cambiar el relleno de aquí a por aquí porque ahí es donde estamos cambiando el color antes. En realidad no estamos haciendo nada al color. Y ahora debería funcionar muy bien. Entonces ahora lo puedes ver algo así como colores pastel al óleo si alguna vez has trabajado con esos, tiene una textura muy cerosa y esto me recuerda eso. Para que puedas aumentar las velocidades, digamos 15. Y puedes jugar con él. Se puede ver la textura es más granulada de esta manera porque como dije antes, Cuanto más velocidad tengas, más espacio entre cada forma una de la otra. Y de nuevo, jugar con la col rizada de
ruido y las fortalezas de ruido puede producir muchos resultados diferentes. Entonces si hago un 100 por aquí, vas a ver un diseño muy diferente. Redujamos esto a seis incluso. Yo sólo voy a quitar el blanco porque no les gusta. Sí, eso es más o menos lo que necesitas saber sobre la creación de pinceles. Todo lo que necesitas hacer es crear tu pincel por aquí, y luego también puedes crearlo aquí en su propia función. Su multa, sin embargo, hay que llamarlo aquí. Y si estás haciendo la coloración aquí, entonces solo recuerda hacer el relleno o trazo por aquí, pero esto no es necesario. Lo único necesario es demasiado seco dentro de la función de actualización después de tu ángulo y x e
y porque entonces vas a llamar a la función de actualización dentro de tu bucle for, dentro de tu método de función de visualización dentro de tu clase de agente. Ahora volvamos a las otras formas. Ahora que viste cómo usar tus pinceles personalizados, aquí te dejamos algunos ejemplos de otro aliento es un creado y los resultados que obtuve. Es divertido jugar con sombras a veces para dar profundidad a tu trabajo. En estos ejemplos se utilizan el pincel hecho de una vista clientes
gruesos luego copiado el mismo pincel con algún desplazamiento, creando un efecto de sombra. Solo necesitas colorear la forma superior con tu matriz de colores ya que tu inferior debe tener un tono oscuro para crear ese efecto de sombra. Muy sencillo pero muy interesante. El truco con éste sin embargo, es aumentar el tamaño del paso y disminuir el número de agentes para que no esté demasiado lleno. Así es como se ve la función. Yo también quería crear un pincel de trazos finos para imitar esos pinceles cuadrados deshilachados. Me molestan un trabajo análogo. Pero para las imágenes generadas por computadora, eran bastante agradables. Son lo mismo que el pincel de círculos aleatorios, pero con líneas en su lugar, echa un
vistazo a la función y trató de recrear. Esos son sólo unos pocos que se me ocurrió mientras estaba planeando este curso. Es hora de crear el tuyo y llegar a algo único para ti.
10. Técnicas de coloración: Un algoritmo puede producir tantos resultados únicos cambiando tus técnicas de coloración distintas de seleccionar aleatoriamente colores de una matriz o mapear colores a la posición y rotación, puedes agarrar colores de una imagen interesante obteniendo los colores de cada píxel en la misma posición que tus formas, simplemente
importas la imagen, la cambias tamaño para que se ajuste a tu lienzo preferentemente en la misma proporción que tu lienzo. Siéntase libre de ser poco convencional y estirar hacia fuera. Después usa el getMethod en la clase PMF para agarrar tu color del píxel subyacente. Estos ejemplos muestran algo de mi otro arte generativo como insumo. Uno está generando colores durante la inicialización de los agentes y el otro está agarrando los colores a medida que se mueve, produciendo resultados variables. Otra técnica que recogí de los posts de Taylor Hobbes en su sitio es la coloración basada en unos pocos colores dispersos en la pantalla. Se trata de un proceso largo, pero lo esencial se dispersa y muestra objetos con algunos colores almacenados aleatoriamente. Después comprobando la distancia entre tus agentes en movimiento y esos objetos, la distancia más corta determina el color de tu agente en movimiento. Ahora puedes leer más en la página web de Tyler hubs ya que su técnica tiene un poco más de pasos hacia ella. Aquí hay un ejemplo donde rastreé la distancia constantemente a medida que los agentes se mueven, produciendo una textura Voronoi. También puedes agarrar colores de filas de colores en la pantalla horizontal o verticalmente usando la propiedad x o y. Es similar a mapear la posición, pero este enfoque mantendrá los colores relativamente inigualables, creando un aspecto degradado. No obstante, cuanto más tiempo se ejecute este programa, más fusionados estarán los colores y el efecto de gradiente se disipará. Esto se puede lograr mediante el uso de esta ecuación, por ejemplo, para sus índices de paletas ya que esto da el resto de dividir x por r longitud de palets contando de 0 a uno menos que la longitud de la matriz de paletas cuando se redondea. Ya que x se mueve con incrementos muy pequeños, esto te dará columnas muy delgadas. Para rescatar que se puede dividir x por r ancho de columnas deseadas. Elegí dar cada columna de color dividiendo x por el ancho del lienzo dividido por la longitud de mis palets. Esto puede producir valores buscados por alguien. Por lo que un método de restricción es un consejo para mantener su restricción de valores de índice entre 0 y el último índice de su matriz de colores. Estas son algunas de las obras de arte resultantes de esta técnica de coloración. El siguiente método de coloración es bastante interesante ya que produce texturas parecidas a la nube, dando más profundidad a tu arte. Se puede obtener la pendiente mediante el uso de esta fórmula, que es muy similar a la del año anterior. Aquí, estamos usando el ángulo del movimiento en lugar de la posición x e y. Estos son los resultados. último pero no menos importante, para jugar con el color es usar la interpolación de color. Hablé de esto un poco más en detalle en mi espalda al curso de conceptos básicos en la sección de color, siéntase libre de comprobar eso para obtener más información. El justicia que la función de color blurb crea una matriz de colores utilizando sólo dos colores. Para mi diseño, creé esta función de gradiente para crear una nueva paleta interpolando entre cada color posterior en mi matriz original. Esto permite una transición de color más suave a medida que los agentes se mueven, puede utilizar cualquiera de las técnicas anteriores para utilizar esta nueva paleta. Utilizo esta fórmula para mi índice para crear una transición de color oscilante actualizando mi ángulo de función sinusoidal por uno en el método de actualización y dividiéndolo por un 100 para escalarlo hasta así haya más tiempo para que cada color aparezca. No es mi técnica favorita con este programa, sino jugar con él. Es posible que encuentres que un valor para ti. Definitivamente hay mucho más que puedes hacer en cuanto a colorear tus diseños. Pero espero que estas técnicas sean suficientes para expandir tus horizontes y conseguir que fluyan tus jugos creativos. A mí me emociona ver lo que se te ocurre.
11. Guardar imágenes: Ahora hemos creado, Oliver diseños, estáticos y dinámicos. Y es hora de ahorrar. Hablé de guardar tus diseños o algunas de las formas que él puede guardar tus diseños en mis otros cursos. Pero lo voy a repetir aquí. Porque también quiere mencionar cuándo guardar una animación,
cuándo guardar una sola imagen fija o fue a guardar una imagen vectorial de alta calidad. Lo primero que suelo hacer es guardar imágenes fijas, y a veces lo hago en mi tamaño de prueba. Entonces como 500 por 500, como este ahora mismo. Sólo para ver cómo se ven las cosas. Principalmente porque ahora mismo podemos ver que los colores son realmente brillantes, pesar de que los colores que elegí son un poco silenciados que estos. Pero por alguna razón la vista por aquí te muestra colores muy, muy brillantes. Pero una vez que lo guardes, los colores van a estar un poco apagados. A lo mejor quieres cambiarlos. En realidad te gustan esos colores brillantes, así que tendrás que alegrarlos y volverlo a hacer. Por lo que probar usando un tamaño que es pequeño, como este es una buena manera de ir. Entonces si quieres guardar solo un PNG, puedes hacerlo de esta manera. Entonces vamos a abrir una nueva pestaña. Simplemente lo llamaré guardar. Y ahora dentro de ella quiero guardarla cuando las teclas presionadas, sobre todo con este trabajo porque tengo que esperar a que se ejecute y ver los resultados que me gustan. Y luego quiero guardarlo. Tendré que esperar a cierto punto y hacer clic en un botón. Por lo que puedes hacer clic en el ratón si quieres. Puedes elegir MousePress o MouseLicked como la función que deseas buscar como entrada. Pero lo que me gusta o lo que prefiero es usar la tecla presionada. El motivo de esto es porque si quiero guardar la misma imagen que una imagen vectorial, y aún así esa es una imagen Raster, entonces es mucho más fácil para mí usar KeyPrespressed porque entonces
buscaré la letra s Si quiero guardarla como PNG, pero luego pediré la letra P para guardarla como PDF, que es el formato vectorial. Aquí sólo lo vamos a guardar como una imagen ráster, como un PNG. Por lo que no tenemos que pensar mucho en ello, pero todavía me gusta mantenerlo un hábito de simplemente ponerlo dentro de una función de pulsación de teclas. Entonces voy a hacer solo tecla presionada y presionada es en realidad capital, ¿de acuerdo? Y solo usarán si y después la clave de palabra clave. Por lo que la tecla busca cualquier letra o cualquier personaje que empujes en el teclado. Y para los personajes, hay que hacer una sola cita. Y yo digo, OK, si la llave es la tecla que se presiona, entonces haz esto. Entonces voy a guardar mi PNG, pero quiero guardarlo primero dentro de un archivo de salida. A mí me gusta mantener mi trabajo organizado. Y luego más veces TAM y plus dot PNG. El motivo por el que uso la marca de tiempo aquí como porque eso es lo que aprendí del diseño generativo, el libro. Y lo he estado haciendo desde entonces porque tiene más sentido guardar tus archivos y
asegura que no sobrescribes tus archivos antiguos porque no hay fecha y hora como los demás. Por lo que solo puedes guardar tus archivos sin preocuparte por nombrarlos. Y también sabes cuando realmente los creaste. Entonces eso también es un plus. Ahora con el fin de crear la función de marca de tiempo, solo escribo cadena porque estoy devolviendo una cadena porque eso es lo que estoy agregando por aquí, concatenando con las otras dos cadenas. Y antes de que realmente empecemos a hacer esto, quiero mostrarles que aún no tengo ningún archivo guardado. Entonces esta es mi carpeta. Tengo mi archivo de agente, que es mi tocado incluso por aquí. Muchos agentes, que es el grifo de las minivans por aquí, que es el nombre del archivo principal. Y luego mi punto p guardado, que es mi grifo seguro por aquí. De acuerdo, ahora podemos seguir creando las funciones de marca de tiempo. Por lo que sólo voy a hacer timestamp. Y dentro de ella, voy a conseguir una instancia del calendario, que es una clase de la clase de utilidad Java. Entonces, en realidad lo importemos primero. Por lo que no se queja. Entonces solo voy a importar algo llamado java.util para ti a Lee y luego calendario. Por lo que ahora tenemos la clase de calendario. Y puedo decir desde la clase de calendario, dame una instancia llamada ahora, y no la creas diciendo calendario nuevo. En realidad dices calendario. Por lo que hay que llamar de nuevo a la clase y luego punto obtener instancia. Y ahora podemos formatear. Entonces voy a devolver solo el formato string dot para que puedas formatear la cadena que obtenemos de aquí. Dentro de un formato. Te formateas, o escribes tu formato aquí usando una cadena. Y luego aquí dentro escribes tu variable por aquí. Por lo que aquí escribiremos la cadena de formato. Y la cadena de formato va a ser el signo de porcentaje y uno y luego signos de dólar. Entonces esto se está dirigiendo a esto básicamente. Por lo que estamos diciendo toma el valor aquí y luego consígueme el año. Entonces el año es T y y esto me va a conseguir una orina de dos dígitos. Y entonces haré lo mismo. Entonces copiaré esta parte porque está apuntando a este argumento por aquí, que es el primer argumento dentro del formato, porque puede agregar aún más argumentos aquí. Entonces este va a ser el primer argumento. Este es el segundo argumento para que esto lo formatee, pero sólo tenemos uno. Entonces solo volveré a hacer esto. Y luego esta vez quiero el mes, y luego lo volveré a hacer y esta vez gané el día y luego haré un guión bajo. Entonces consigo el Año, dos dígitos del año, dos dígitos del mes, y luego dos dígitos del día. Y luego quiero un subrayado y luego el tiempo. Entonces si guardas múltiples imágenes en el mismo día, va a tener diferentes tiempos usando los segundos también. Entonces si incluso ahorra en el mismo minuto, seguirá siendo diferente y no sobrescribirá tu anterior. Entonces tenemos que volver a incluir esto y luego la hora. Y esto me dará los dos dígitos de la hora y diez minutos y luego segundos. Entonces ahora cuando decimos que vamos a ver dos dígitos de cada año, mes y día,
y luego nuestros minutos y segundos, y nuestros minutos y segundos no van a ser mayúsculas. Puede encontrar este u otros formatos en la documentación de Java. Entonces si dices formatos de cadena, it, obtendrás todo esto y cómo puedes formatear tu Spanx, y eso es más o menos todo. Entonces ahora si vuelvo a ejecutar esto, así que tengo que guardarlo y ejecutarlo. Ahora, dejaré que se ejecute un poco y luego golpearé la tecla S mientras esto está activado. Entonces si alguna vez vuelvo aquí y quiero
guardarlo, no va a ahorrar, va a escribir S por aquí. Por lo que tenemos que asegurarnos de que esto esté activado. Una vez que lo ejecutas en realidad, solo se activa automáticamente para que solo puedas presionar el ascii. Entonces voy a presionar el ascii y ahora vamos a volver a nuestra carpeta. Y podemos ver la carpeta de salida en este momento, si ya se crearon las carpetas de salida, que simplemente la guardará dentro de ella. Podemos ver la imagen aquí dentro, y la imagen tiene el nombre que formateamos. Por lo que tiene 20. Por lo que 20-20 que 18 de octubre y subrayado 1705 en punto en 26 minutos y luego 24 segundos. Entonces ahora aunque regrese y guarde otra versión de ésta, conseguiré la otra. La única diferencia entre esos dos es que esto está en a esto se creó a las cinco en punto y a los 26 minutos. Y esto fue creado a las cinco en punto y 27 minutos y nueve segundos de su contabilidad. Esa es la forma más fácil de ver imagen pareada. Pero ¿y si quieres una imagen de alta calidad que quieres compartir? Por lo que esto solo creo Siempre que pruebo mis archivos o pruebo mis imágenes. A veces incluso pruebo con la resolución que necesito porque tal vez más
adelante realmente me gustaron los resultados que obtuve de esas pruebas que quiero usar. Por lo que me gusta cambiar o me gusta codificar y 500 por 500. Y una vez que establezco el diseño que
me gusta, sólo lo llevo hasta 1920, para 1920. Y en realidad será cortada de la pantalla. Pero se puede ver claramente el diseño. Las líneas son un poco SAN o no tengo tantas agencias que quiero. Por lo que sólo puedo volver atrás y mejorarlo. E incluso sólo ver una parte de la pantalla no va a arruinar tanto
el diseño para ti porque sigue siendo muy aleatorio. Incluso la función de ruido está produciendo valores aleatorios. Entonces no va a ser lo mismo cada vez. Si quieres que sea igual, definitivamente puedes usar la semilla ruidosa y aleatoria. Lo que haces es hacer semillas flotantes y luego semillas largas aleatorias. Nombres a los que quieres llamarlos. Y entonces aquí dentro voy a decir, en realidad lo voy a hacer sólo por aquí. Y voy a convertirlo en un entero en su lugar. No necesitas un flotador. Y entonces aquí dentro voy a hacer semilla aleatoria. Y va a igualar valor aleatorio de las semillas que obtenemos. Entonces este es el valor máximo que íbamos a utilizar. Y entonces esto se va a quejar porque dice
discordancia de tipo porque aleatorio va a producir un valor flotante cuando necesita ser largo porque el asiento aleatorio tanto tiempo. Entonces lo voy a lanzar en un largo. Y la razón por la que estoy usando el tipo de datos largo es porque el ruidoso no acepta un flotador excepto tanto tiempo. Entonces sólo voy a usar los de aquí. Semilla aleatoria y voy a usar lo mismo. Puedes crear otro para asiento aleatorio, pero quiero usarlo aquí y luego voy a imprimir la semilla aleatoria. Entonces siempre que encuentres un diseño que te guste y quieras volver a él. Puedes guardar este asiento por aquí. Entonces ahora imprimí la semilla sembrada dentro de semilla de ruido es en realidad 974, y dentro de la semilla aleatoria es 974 también. Entonces si quieres repetir este diseño, tal vez quieras guardarlo a mayor escala para alguien que lo solicitó, puedes volver a las semillas y puedes guardar las semillas en tu nombre de archivo. De acuerdo, solo quería incluir eso en guardar el archivo porque es una especie de parte de cómo guardé mi archivo a veces. Ahora vamos a guardar una animación en su lugar. Entonces digamos que quiero tener esa animación que está sucediendo. Entonces voy a volver a 500 por
500 y en realidad lo mostraré para que veas mejor los diseños. Entonces digamos que quiero guardar la animación. Ahora si quiero guardar un marco, solo
puedo golpear S en cualquier momento y lo va a guardar. Pero si quiero guardar la animación, lo voy a hacer aquí abajo. Entonces después de la función de dibujo, y por supuesto la función de dibujo tiene que bucle porque quiero decir que es una animación. Y luego voy a hacer decir marco. Entonces es lo mismo que seguro. Pero aquí, marco seguro básicamente guarda cada cuadro que sucedió en tu diseño. Y sumará números desde uno hasta cualquier fotograma en el que te detengas. Entonces digamos que quiero permitirme dígitos, nombre de
archivo porque normalmente subiría a los miles de fotogramas. Por lo que hasta 2 mil, a veces incluso más solo para conseguir el tiempo que yo quiero. Y luego consiguió PNG. Entonces eso es todo lo que necesitas hacer para guardar la animación. También me gusta darle una salida diferente, sobre todo si tengo una salidas originales así o carpeta, carpeta de salida, quiero decir, así salida dos, lo voy a llamar porque ya tengo una salida y luego dirá ventilación. Y ahora si ejecuto esto y voy a mis salidas. Dos, voy a ver los marcos ahorrando. Entonces estamos hasta un 100. Y se puede ver que el ismo de animación es mucho más lento heredar porque está guardando cada fotograma, por lo que está tomando su tiempo mientras lo guarda. Y ahora digamos que quiero parar aquí y dueño para hacer estos y animación, voy a tener que ir al menú de procesamiento. No está siendo capturado en la pantalla por aquí, pero les voy a mostrar exactamente dónde pueden encontrarlos. Está en el menú Herramientas como se llama Movie Maker. Por lo que si hace clic en cineasta, se convirtió sólo arrastrar una carpeta con archivos de imagen en el campo de abajo. Entonces solo voy a arrastrar la carpeta en lugar de navegar. Y ahora tiene el camino. Y por defecto son 60 fotogramas por segundo porque esto se está ejecutando en 60 fotogramas por segundo, pero puede cambiar eso. Entonces si quería estar un poco entrecortada, puedo hacer tarifas de fotogramas 12. He hecho animaciones con una velocidad de fotogramas de uno por segundo para que sea algo así como un reloj en movimiento. Y luego quiero que la compresión sea una animación. Puedes convertirla en una secuencia jpeg o una secuencia PNG, pero solo voy a hacer una animación y el mismo tamaño que el original. Por lo que no va a mirar el ancho y la altura. No te preocupes por eso. Si quitas esto, te va a pedir que cambies. Pero si dijimos el mismo tamaño
que el original, nos va a dar 500 por 500 y para éste. Y luego si quieres arrastrar un archivo de sonido
a la película que estás creando o a la animación. Y solo puedes arrastrarlo hasta aquí. Y ahora solo puedo decir crear la película y me preguntará dónde guardarla. Por lo que voy a simplemente guardarlo dentro de la misma carpeta. Sólo lo guardaré aquí arriba. Entonces ahora se acabó creando la película por aquí. El único problema que encontré últimamente con este, con las nuevas versiones de Mac es que no va a jugar en tiempo rápido. Entonces lo que hago es simplemente ir a cualquier software que cambie cualquier archivo de película en un mp4 y el interés convertir eso. Entonces sí, así es más o menos como se crea una animación. Y ahora hablemos de guardar un PDF o un formato vectorial. Guardar un PDF para guardar un formato vectorial produce imágenes de
muy, muy alta calidad porque luego puede convertir tus archivos PDF en imágenes PNG. Y esa será una calidad mucho mayor que simplemente guardarla de inmediato. Y sin hacer también todos los cambios cuando cambias el tamaño de tu Lienzo. Entonces, básicamente, si quiero guardar esto como 500 por 500 no lo va a guardar como 500 por 500 porque va
a ser una imagen de mucha calidad porque la
guardó como formato vectorial en lugar de una imagen ráster. Entonces si quiero guardarlo, solo
voy a copiar y pegar todo lo que creamos por aquí. Por lo que no tengo que volver a crear la marca de tiempo. Y voy a crear una nueva pestaña y solo llamarla guardar. Y entonces haré lo mismo aquí. Tengo que hacerlo también. El calendario. Ok, entonces ahora todo es igual. Y si vuelvo a ejecutar esto, fácilmente
puedo guardar esto y va a ahorrar. Entonces ahora mi salida por aquí y se puede ver lo que la imagen es muy pequeña. Pero como esta es una imagen estática, fácilmente
puedo hacer un PDF. Entonces para poder hacer un PDF, o guardo un archivo PDF, solo
voy a hacer lo mismo que hice aquí. Pero esta vez voy a hacer si clave es P. Así que si es Pete y quiero guardarlo como PDF y no va a ser esto va a ser un registro de inicio. Y grabar. Entonces comenzaré la grabación aquí. Y luego cuando golpee esa tecla, quiero que termine requerido. Y entonces comenzar de acuerdo. Requiere más argumentos y registro no requiere ningún argumento, así que tendré que simplemente hacer PDF como los formatos y luego haré lo que hice aquí. Entonces solo copiaré y pegaré esta parte. Y entonces haré PDF en lugar de PNG. Entonces es básicamente lo mismo. Quería estar dentro de mi carpeta de salida. Y la función de marca de tiempo está por aquí también. Pero ahora, si quiero guardar esto, no
va a guardar mi imagen. Entonces digamos p y luego escribo E. En primer lugar, no se va a ahorrar porque nos olvidamos de importar la biblioteca PDF mostró una biblioteca PDF
es básicamente una biblioteca de procesamiento importar desde el procesamiento de punto PDF. Y luego quiero todo. Y luego si vuelvo a ejecutar esto, así que solo hago p y luego haré e. Y ahora este es mi PDF. Por lo que mi PDF es un lienzo vacío. Realmente no hizo nada porque comenzó a grabar. Pero entonces no hay nada aquí para
grabarlo porque no busca esto por aquí. Tiene que saber qué es lo que se está
grabando y eso tiene que ser englobado entre el registro de inicio y el registro. Pero no hay nada realmente intercalado entre ellos. Entonces solo voy a llamar a la función de configuración porque requiero todo por aquí, porque necesito el color de fondo. Necesito el número de agentes o la inicialización de los agentes, y luego necesito el movimiento por aquí. Entonces solo haré configuración y luego dibujaré. Y ahora si vuelvo a ejecutar esto y luego hago clic en la letra PI, y luego verás que el pdf está creado, pero no está terminado porque realmente no terminamos la grabación. Entonces si voy de nuevo, activa esto y luego golpea la E, verás esto cambiando en el diseño. Y luego se puede ver que se trata de una imagen de muy alta calidad. Por lo que puedes convertir esto en un PNG. Hay muchas plataformas donde se puede hacer eso. Normalmente lo hago dentro de mi Mac porque acredito una acción donde puedo convertir esto en un PNG directamente aquí. Y luego lo guarda dentro de una carpeta que le pedí guardar dentro de mis acciones. Y lo guarda como PNG. Esa es toda otra historia, pero cambiarla o convertirla en un P&G no es realmente una tarea difícil. Y puedes encontrar muchas plataformas que haciendo. Entonces, sí, así es más o menos como guardas un formato vectorial. Y si quieres abrir esto como vector, solo
tienes que hacer clic o hacer clic derecho y luego abrir con Adobe Illustrator. Y te lo abrirá y te mostrará cómo abrir y manipular el trabajo en mi otro curso. puedas ir y rastrear eso en mi Intro a Enero de arte, donde puedes crear una Grids y ahí puedes
aprender a abrir esto en Illustrator y editarlo. Ahí.
12. Inspiración y más información: No importa cuántos ejemplos y te den, solo
soy una persona con un cerebro. Por lo que para inspirarte en lo que puedes hacer con la información de este curso, visita o causa Abrir página de procesamiento. Tiene una tonelada de trabajo increíble con ruido. Uno de mis favoritos absolutos es este reloj uno. Utiliza la función de ruido para destruir su imagen. Parece muy complicado, pero el código es bastante claro y directo. Este artista utiliza p5 js, que es equivalente al procesamiento en forma JavaScript. Es muy fácil de descifrar ya que ambos usan los mismos métodos. Pero si te quedas atascado en cualquier momento, siéntete libre de preguntarme en la sección de discusión o revisar la documentación de
ambos idiomas para algunas respuestas. Ahora sigo volviendo al trabajo de Tyler Hobbes ya que Él nunca deja de sorprenderme. Tiene un artículo y trabajando con campos de ruido y flujo que cuenta alguna información valiosa y técnicas
interesantes de residuos y distorsionan los movimientos de los agentes. El modo en que está, es el campo de flujo es diferente a la forma en que lo uso. Si visitas la naturaleza del sitio web de código por envío de Daniel, que es otra gran referencia para trabajar con campos de flujo. Se puede entender mejor cómo Tyler Hobbes utiliza los campos de flujo. El concepto aquí en este curso, ahí dentro, y las referencias es similar, pero el proceso es diferente. Si encuentras más referencias, por favor compártalas con tus cursos. En las notas de este video o en la sección de discusión, siempre
busco alguna nueva inspiración y retos. Además, siéntete libre de compartir tu proceso con todos en la sección de discusión o en tus notas de proyectos. Es agradable obtener y dar retroalimentación constructiva. Ayudémonos mutuamente a progresar.