'SetPixel'

   Print  Previous  Next

Functionality

SetPixel functions offer the possibility to change the color of pixels. You can either specify a certain color or use greyscale.

 

Examples

SetPixel

To test this script, please use the MAS Script effect.

@scriptname="SetPixel test, use with MAS script effect";

@author="";

@version="";

@description="";

 

 color col;

 int maxX,maxY,x,y;

 void InitEffect()

 {

    maxX=GetMatrixWidth();

    maxY=GetMatrixHeight();

 }

 

 void RenderEffect()

 {

    col.r=random(0,255);

    x=random(0,maxX-1);

    y=random(0,maxY-1);

    SetPixel(col,x,y);

 }

 

 void MatrixSizeChanged()

 {

    InitEffect();

 } 

 

SetPixel - Filling The Matrix

To test this script, please use the MAS Script effect.
This sample fills every pixel of every row of the matrix with the color white from left to right until the complete matrix is covered. Every second iteration black is used instead of white.

@scriptname="SetPixelSample";

@author="jky";

@version="MADRIX 2.13";

@description="a simple setpixel example to fill the matrix";

 

int x,y,c;

color col;

 

void InitEffect()

{

      x=0;

   y=0;

   c=0;

   col=WHITE;

}

 

void RenderEffect()

{

     SetPixel(col,x,y);

  x++;

  if(x>=GetMatrixWidth())

  {

         x=0;

         y++;

         if(y>=GetMatrixHeight())

         {

                 y=0;

                 c++;

                 if(c%2==0)

                         col=WHITE;

                 else

                         col=BLACK;

         }

  }

}

 

void MatrixSizeChanged()

{

 InitEffect();

}

 

SetPixelGreyscale (MAS Script)

To test this script, please use the MAS Script effect.

@scriptname="sample of greyscale for a single pixel";

@author="";

@version="";

@description="";

 

  int X,Y;

  void InitEffect()

  {

    X=GetMatrixHeight();

    Y=GetMatrixWidth();

    Clear(BLUE);

  }

 

  void RenderEffect()

  {

    for(int i=0;i<X && i<Y;i++)

  {

    SetPixelGreyscale(i,i); // line from top left to bottom right

    SetPixelGreyscale(X-i-1,i); // line from top right to bottom left

  }

    // to render the complete matrix in greyscale, the greyscale() command 

    // offers higher performance:

    // Greyscale();

  }

 

  void MatrixSizeChanged()

  {

    InitEffect();

  }

 

SetPixelGreyscale (Macro)

To test this script, you can use the Main Output Macro. But first, please select for example the SCE ColorScroll effect in Storage A or B and display the effect on the output.

@scriptname="sample of greyscale for single pixel";

@author="";

@version="";

@description="";

 

  int X,Y;

  void InitEffect()

  {

    X=GetMatrixWidth();

    Y=GetMatrixHeight();

  }

 

  void PreRenderEffect()

  {

  }

 

  void PostRenderEffect()

  {

    if(X>Y)// width larger than height

  {

  for(int i=0;i<Y;i++)

  {

    SetPixelGreyscale(i,i); // line from top left to bottom right

    SetPixelGreyscale(i,Y-i-1); // line from top right to bottom left

  }

  }

    else // height larger than width

  {

  for(int i=0;i<X;i++)

  {

    SetPixelGreyscale(i,i); // line from top left to bottom right

    SetPixelGreyscale(X-i-1,i); // line from top right to bottom left

  }

  }

    // to render the complete matrix in greyscale, the Greyscale() command 

    //  offers higher performance

    // Greyscale();

  }