Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- Kernel pro vlajky - mimo
- __global__ void kernel_flag( uchar4 *obr, uchar4 *vystup, int sizex, int sizey )
- {
- int y = blockDim.y * blockIdx.y + threadIdx.y;
- int x = blockDim.x * blockIdx.x + threadIdx.x;
- float uhel = 0.2;
- uchar4 bgr2 = { 255, 255, 255 }; // bila
- int sx = sizex / 2;
- int sy = sizey / 2;
- int dx = (double)(x - sx) * cos(uhel) - (double)(y - sy) * sin(uhel);
- int dy = (double)(x - sx) * sin(uhel) + (double)(y - sy) * cos(uhel);
- int nx = sx + dx;
- int ny = sy + dy;
- if(nx >= sizex || nx < 0){
- vystup[ y * sizex + x ] = bgr2;
- }else
- if(ny >= sizey || ny < 0){
- vystup[ y * sizex + x ] = bgr2;
- }else{
- vystup[ y * sizex + x] = obr[ (ny) * sizex + nx];
- }
- }
- /* Recka vlajka
- if ( blockIdx.y%2 == 0 )
- {
- bgr.y = bgr.z = 0;
- }
- if( x <= sizex/2 && y<= sizey/2 )
- {
- bgr.y = bgr.z = 0;
- }
- if( (x <= sizex/2) && (y<= sizey/2) )
- {
- if(sizey/4 >= y-10 && sizey/4 <= y+10)
- {
- bgr.z = 255; // R
- bgr.y = 255; // G Cervena
- bgr.x = 255; // B
- }
- if ( x+10 >= sizex/4 && x-10 <= sizex/4 )
- {
- bgr.z = 255; // R
- bgr.y = 255; // G Cervena
- bgr.x = 255; // B
- }
- }
- */
- //Otocena vlajka
- /*
- // Cervena barva
- if ( x >= sizex / 2 )
- {
- bgr.y = bgr.x = 0; // zustane cervena
- }
- // Modra barva
- if(y>=(sizey-sizex/2))
- {
- if(x <= (sizex - sizey + y ) && x >= ( sizey - y))
- {
- bgr.z = y; // R
- bgr.y = y; // G Cervena
- bgr.x = 255; // B
- }
- }
- */
- /*
- // Kostecky v levo dole a v pravo nahore
- // Kostka v levo dole
- if ( x < sizex/2 && y > sizey/2 )
- {
- bgr.x = bgr.y = bgr.z = 0;
- }
- // Kostka v pravo nahore
- if ( x > sizex/2 && y < sizey/2 )
- {
- bgr.z = 204; // R
- bgr.y = 153; // G Cervena
- bgr.x = 255; // B
- }
- //Kostka v v pravo dole
- if ( x > sizex/2 && y > sizey/2 )
- {
- bgr.z = 255; // R
- bgr.y = 0; // G Cervena
- bgr.x = 0; // B
- }
- // Kontka v levo nahore
- if ( x < sizex/2 && y < sizey/2 )
- {
- bgr.z = 0; // R
- bgr.y = 102; // G Cervena
- bgr.x = 0; // B
- }
- */
- /*
- // Kriz - zachrany
- if ( (y > 2*(sizey/6)) && (y < 4*(sizey/6)) && (x > (sizex/6)) && (x < 5*(sizex/6)) )
- {
- bgr.x = bgr.y = bgr.z = 0;
- }
- if ( (y > sizey/6) && (y < 5*(sizey/6)) && (x > 2*(sizex/6)) && (x < 4*(sizex/6)) )
- {
- bgr.x = bgr.y = bgr.z = 0;
- }
- */
- /*
- //Obdelnik |___|
- int hrana = sizex/8;
- if ( (y > 2*(sizey/6)) && (y < 4*(sizey/6)) && (x > (sizex/6)) && (x < 5*(sizex/6)) )
- {
- bgr.x = bgr.y = bgr.z = 0;
- }
- */
- /*
- //Obdelnik |_|
- int hrana = sizex/8;
- if ( (y > sizey/6) && (y < 5*(sizey/6)) && (x > 2*(sizex/6)) && (x < 4*(sizex/6)) )
- {
- bgr.x = bgr.y = bgr.z = 0;
- }
- */
- /*
- // KRUH - dneska
- int y = blockDim.y * blockIdx.y + threadIdx.y;
- int x = blockDim.x * blockIdx.x + threadIdx.x;
- int stred_x = 150;
- int stred_y = 150;
- int r = 140;
- int dx = stred_x - x; // horizontal offset
- int dy = stred_y - y; // vertical offset
- if ( (dx*dx + dy*dy) <= (r*r) ){
- bgr.y = 0;
- bgr.z = 0;}
- */
- /*
- //Ctverec
- int hrana = sizex/8;
- if ( (y > sizey/4) && (y< 3*(sizey/4)) && (x > sizex/4) && (x < 3*(sizex/4)) )
- {
- bgr.x = bgr.y = bgr.z = 0;
- }
- */
- /*
- //Prouzky vertikálně
- if ( blockIdx.x%2 == 0 )
- {
- bgr.x = bgr.y = bgr.z = 0;
- }
- */
- /*
- //Prouzky horizontalně
- if ( blockIdx.y%2 == 0 )
- {
- bgr.x = bgr.y = bgr.z = 0;
- }
- */
- /*
- //Kruh
- float a = (sizex/2-x)*(sizex/2-x)+(sizey/2-y)*(sizey/2-y);
- if ( a <= 60*60)
- {
- bgr.x = bgr.y = bgr.z = 0;
- }
- if ( a <= 70*70)
- {
- bgr.x = bgr.y =0;
- }
- */
- /*
- //Trojuhelnik dolu
- if ( (x+y) <= sizex+sizex/2 && (x+(sizex/2)>=y ) && y > sizey/2 )
- {
- bgr.y = bgr.z = 0;
- }
- */
- /*
- //Trojuhelnik nahoru
- if ( (x+y>=sizex/2) && (x-(sizex/2)<=y ) && y < sizey/2 )
- {
- bgr.y = bgr.z = 0;
- }
- */
- /*
- //Trojuhelnik do prava
- if ( (x-(sizex/2)<=y ) && (x+y) <= sizex+sizex/2 && x> sizex/2 )
- {
- bgr.y = bgr.z = 0;
- }
- */
- /*
- //Trojuhelnik do leva
- if ( (x+y>=sizex/2) && (x+(sizex/2)>=y ) && x <= sizex/2)
- {
- bgr.y = bgr.z = 0;
- }
- */
- /*
- //Kosoctverec - prazdny
- if ( (x+y<=sizex/2) || (x+(sizex/2)<=y ) || (x-(sizex/2)>=y ) || (x+y) >= sizex+sizex/2 )
- {
- bgr.y = bgr.z = 0;
- }
- */
- /*
- //Kosoctverec Modry
- if ( (x+y>=sizex/2) && (x+(sizex/2)>=y ) && (x-(sizex/2)<=y ) && (x+y) <= sizex+sizex/2 )
- {
- bgr.y = bgr.z = 0;
- }
- */
- /********Sachovnice 8X8
- // Nastavení velikosti 8x8 ci 4x4 provedu pomocí main3.cpp
- if ( (blockIdx.y%2==1 && blockIdx.x%2==1) || (blockIdx.y%2==0 && blockIdx.x%2==0) )
- {
- bgr.y = bgr.z = 0;
- }
- */
- /**/
- /*
- for (int i = 1; i < sizey/2; i++) {
- if ((y < i*(sizey / 10)))
- {
- }
- else if ( y <= (i*(sizey / 10) + 5))
- {
- bgr.y = bgr.z = 0;
- }
- }
- ¨*/
- /*
- // Uhlopricka
- if ( ((x+y) % 33 == 1) )
- {
- bgr.y = bgr.z = 0;
- }
- */
- /*
- // Uhlopricka
- if ( (x-10 <= y) && (x+10 >=y) )
- {
- bgr.y = bgr.z = 0;
- }
- */
- /*
- //Obracena uhlopricka
- if ( x+y <= sizex+10 && x+y >= sizex -10)
- {
- bgr.y = bgr.z = 0;
- }
- //Prouzek pres pulku horizontalne
- if ( sizey/2 >= y-10 && sizey/2 <= y+10 )
- {
- bgr.y = bgr.z = 0;
- }
- //Prouzek pres pulku vertikalne
- if ( x+10 >= sizex/2 && x-10 <= sizex/2 )
- {
- bgr.y = bgr.z = 0;
- }
- */
- /*
- // horni polovina
- if (y < sizey/2)
- {
- if((x>(sizex/2-y))&&(x<(sizex/2+y)))
- {
- bgr.y = bgr.z = 0;
- }
- }
- // dolni polovina
- if (y >= sizey/2)
- {
- if((x>(y%(sizey/2)))&&(x<(sizey-(y%(sizey/2)))))
- {
- bgr.y = bgr.x = 0;
- }
- }
- */
- Pridavam vymrdanu vlajku britskych ostrovov...
- KÓD: VYBRAT VŠE
- uchar4 bgr = { 255, 0, 0 }; // modra
- if ( x>=y*3/2-30 && x<=y*3/2+30 )
- {
- bgr.y = bgr.z = 255;
- if ( x>=y*3/2-10 && x<=y*3/2+10 )
- {
- bgr.x = bgr.y = 0;
- }
- }
- //--------
- if ( sizex - x>=y*3/2-30 && sizex - x<=y*3/2+30)
- {
- bgr.y = bgr.z = 255;
- if ( sizex - x>=y*3/2-10 && sizex - x<=y*3/2+10)
- {
- bgr.x = bgr.y = 0;
- }
- }
- if (x > sizex/3)
- {
- if (x < sizex*2/3 )
- bgr.z= bgr.x = bgr.y = 255;
- }
- if (y > sizey/3)
- {
- if (y < sizey*2/3 )
- bgr.z= bgr.x = bgr.y = 255;
- }
- //---------------
- if (x > sizex/3+50)
- {
- if (x < sizex*2/3-50 )
- bgr.x = bgr.y = 0;
- }
- if (y > sizey/3+30)
- {
- if (y < sizey*2/3-30 )
- bgr.x = bgr.y = 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement