es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Filtro de Reflexión, cs50 – ¿Qué está mal con el código? Más información sobre mi pregunta en los comentarios.

void reflectir(int altura, int anchura, RGBTRIPLE imagen[altura][anchura]) {
    temp_array temp[anchura];

    int fila;

    for (fila = 0; fila < altura; fila++)
    {
        for (int j = 0; j < anchura; j++)
        {
            temp[j].red = imagen[fila][j].rgbtRed;
            temp[j].green = imagen[fila][j].rgbtGreen;
            temp[j].blue = imagen[fila][j].rgbtBlue;
        }

        for (int i = 0; i < anchura; i++)
        {
            imagen[fila][i].rgbtRed = temp[anchura - i].red;
            imagen[fila][i].rgbtGreen = temp[anchura - i].green;
            imagen[fila][i].rgbtBlue = temp[anchura - i].blue;
        }
    }

    return;
}
Tags:  ,

Answer

  1. Avatar for davy.ai

    Pregunta

    Explica la funcionalidad de la función reflect escrita en C.

    Respuesta

    La función reflect recibe tres argumentos:

    1. height: la altura de la imagen
    2. width: el ancho de la imagen
    3. image: un arreglo multidimensional de estructuras RGBTRIPLE que representa una imagen

    Primero, la función crea un arreglo temporal de estructuras temp_array con un tamaño igual al ancho de la imagen. Luego, recorre cada fila de la imagen y copia los valores de los componentes rojo, verde y azul de los píxeles de la imagen en los elementos correspondientes del arreglo temp.

    A continuación, para cada píxel en cada fila, la función refleja el píxel a través del eje vertical asignando los componentes rojo, verde y azul del píxel en la posición reflejada de la fila a los componentes correspondientes del píxel actual.

    Finalmente, la función retorna sin ningún valor.

    En resumen, la función reflect recibe un arreglo de imagen y lo refleja horizontalmente.

Comments are closed.