pir.c

来自「图形处理算法合集3:包括图形处理、帧缓存技术、渲染、矩阵运算、建模方法」· C语言 代码 · 共 64 行

C
64
字号
/***********************************************************************The following function displays an image using progressive refinementvia gridded sampling.  It assumes the existence of two functions:    SetColor (x, y)        Sets the current color to the color at image location x,y.    Rectangle (x, y, width, height)        Draws a rectangular region filled with the current color.  The        rectangle ranges from x to (x+width-1), and from y to        (y+height-1).The parameters given are the subdivision start level (a power of two),and the X and Y dimensions of the entire image.***********************************************************************/void  PIR_Display  (start_level, Xdim, Ydim)    int  start_level;      /* Starting Subdivision Level */    int  Xdim, Ydim;       /* Image Dimensions */{    auto int size, size2;  /* Current Region Size & size/2 */    auto int Ix, Iy;       /* Image Space Indices */    /* Initialization loop:  display the initial coarse image tiling. */    size = 1 << start_level;    for (Iy=0;  Iy <= Ydim;  Iy += size)    {   for (Ix=0;  Ix <= Xdim;  Ix += size)        {   SetColor  (Ix, Iy);            Rectangle (Ix, Iy, size, size);        }    }    /* Sampling and Gridding Loop */    size2 = size / 2;    while (size > 1)       /* Subdivide down to the pixel level. */    {        for (Iy=0;  Iy <= Ydim;  Iy += size)        {   for (Ix=0;  Ix <= Xdim;  Ix += size)            {                /* Draw the three new subpixel regions. */                SetColor  (Ix, Iy + size2);                Rectangle (Ix, Iy + size2, size2, size2);                SetColor  (Ix + size2, Iy + size2);                Rectangle (Ix + size2, Iy + size2, size2, size2);                SetColor  (Ix + size2, Iy);                Rectangle (Ix + size2, Iy, size2, size2);            }        }        /* The new region edge length is half the old edge length. */        size  = size2;        size2 = size2 / 2;    }}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?