Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

351
Visualizações
¿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 Respostas
Responde à pergunta

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 Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda