Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

355
Vistas
¿Cómo puedo generar un gradiente de círculo/cuadrado y almacenarlo en una matriz 2d?

Estoy tratando de descubrir cómo puedo, o al menos dónde puedo leer más al respecto, crear un gradiente de círculo/cuadrado y almacenar los datos en una matriz 2d.

Mi objetivo es usar el degradado con ruido símplex para crear una isla de procedimiento restando el degradado del ruido generado.

Aquí hay referencias de imágenes de los gradientes de los que estoy hablando y tratando de lograr: Gradiente cuadrado Gradiente circular

El uso de un degradado con ruido se explica, por ejemplo, en una publicación de blog que encontré aquí: https://medium.com/@travall/procedural-2d-island-generation-noise-functions-13976bddeaf9

Pero solo menciona la creación del degradado sin ningún detalle sobre cómo se supone que debe hacerse. He intentado mirar alrededor pero no he podido encontrar lo que estoy buscando.

Agradecería cualquier consejo o sugerencia en la dirección correcta.

about 4 years ago · Juan Pablo Isaza
1 Respuestas
Responde la pregunta

0

He estado tratando de hacer más o menos lo mismo. Para el cuadrado, puede encontrar la respuesta aquí: Generación de gradiente de matriz 2D en Unity

Y para el círculo uno: puede generarlo en función de la distancia de cada "píxel" desde el centro de la matriz.

este código está en C#, porque eso es lo que estoy usando, pero creo que es lo suficientemente básico como para convertirlo fácilmente.

 int arrayWidth, arrayHeight; float[,] gradientArray = new var[arrayWidth, arrayHeight] int centerX = arrayWidth / 2 -1; //find center of the array int centerY = arrayHeight / 2 -1; //find center of the array for (int x = 0; x < arrayWidth; x++) { for (int y = 0; y < arrayHeight; y++) { float distanceX = (centerX - x) * (centerX - x); float distanceY = (centerY - y) * (centerY - y); //find distance from center float distanceToCenter = Mathf.Sqrt(distanceX + distanceY); //divide distance by one of the sides (width or height). //by messing with this line you can easily alter the gradient distanceToCenter = distanceToCenter / arrayHeight; gradientArray[x, y] = distanceToCenter; //set value } }
about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda