RTK - rezultati

Znani so rezultati letošnjega tekmovanja v programiranju na IJS.

Organizatorji so se lepo potrudili, da so tekmovalci dobili dobre nagrade. Čestitke zmagovalcem in pohvale udeležencem!

Še posebej bi bilo treba pohvaliti Jelka Urbančiča, ki je na tekmovanje pripravljal najboljše štiri udeležence v tretji, najtežji skupini. Nivo programerskega znanja teh dijakov je precej višji od povprečnega nivoja diplomanta FRI.

Primer programčka v SDL - nalaganje slike

Primer programčka, ki naloži in skopira slikico. Poiščite napake in grde programerske prijeme!

Koda:

 Uint32 x,y,i, minw;
 short int c;
 Uint8 *pimage, *pdisplay;
 SDL_Init(SDL_INIT_VIDEO);
 display = SDL_SetVideoMode( 450, 480, 32, SDL_HWSURFACE);
 /*for (i=0; i!=255; i++){*/
    if (SDL_MUSTLOCK(display))
        SDL_LockSurface(display);

    temp = SDL_LoadBMP("lenna.bmp");
    if (temp == NULL) {
        printf("Unable to load bitmap: %s\n", SDL_GetError());
        return 1;
    }

    image = SDL_DisplayFormat(temp);
    SDL_FreeSurface(temp);
    /* for(y=0; y<(display->h); y++) {
        for(x=0; x<(display->w); x++) {
            c = (x%256)*256 + (y%256)*65536;
            *((Uint32*)display->pixels + (y * display->w + x)) = c;
        }
    }
    */
    /* SDL_BlitSurface(image, 0, display, 0); */
    minw = display->w;
    if (image->w < minw) minw = image->w;
    for(y=0; y<(display->h); y++) {
        for(x=0; x< (4*minw); x++) {
            pdisplay = (Uint8*)display->pixels + (4*y * display->w + x);
            pimage = (Uint8*)image->pixels + (4*y * image->w + x);
            c = *pimage;
            c = c - 100;            
            if (c > 255) c = 255;
            if (c < 0) c = 0;
            *pdisplay = c;
        }
    }
    if ( SDL_MUSTLOCK(display) )
        SDL_UnlockSurface(display);

    SDL_UpdateRect(display, 0, 0,  display->w,  display->h);
 /*}*/

 SDL_Delay(5000);
 return 0;
}

Primer programčka v SDL

Spodnji program je namenjen predvsem študentom FRI. Gre za demonstracijo risanja po zaslonu. Program prevedete v konzoli z ukazom:

gcc `sdl-config --cflags --libs` sdl-test.c -o sdl_test

Izvorna koda:

#include <SDL.h>

int main()
{
 SDL_Surface* display = NULL;
 Uint32 x,y,i;
 Uint8 c;

 SDL_Init(SDL_INIT_VIDEO);
 display = SDL_SetVideoMode( 450, 480, 32, SDL_HWSURFACE);
 /*for (i=0; i!=255; i++){*/
    if (SDL_MUSTLOCK(display))
        SDL_LockSurface(display);

    for(y=0; y<(display->h); y++) {
        for(x=0; x<(display->w); x++) {
            c = 255;
            /*printf("Naslov zaslona:%x", display->pixels);*/
            *(unsigned char*)(display->pixels + (y * display->w + x)) = c;
        }
    }

    if ( SDL_MUSTLOCK(display) )
        SDL_UnlockSurface(display);

    SDL_UpdateRect(display, 0, 0,  display->w,  display->h);
 /*}*/

 SDL_Delay(5000);
 return 0;
}

Zamike popravite sami!

USB-amfibija-si

Izvorno kodo, ki teče na mikrokontrolerju, dobite tukaj. Poleg je program, ki ga poženete na računalniku in s katerim robota upravljate.

Kot osnovo sem uporabil vozilo, kupljeno za cca 30€ v eni od slovenskih spletnih trgovin, ki ima fizično izpostavo v BTC (ne bom delal direktne reklame). Ker je vozilo poceni in škart roba, sem jih po pritožbi za ceno 30€ dobil kar 5, saj jih prodajalec kot igrače verjetno ne bi mogel prodati. Več o izdelavi izveste ob kliku na naslov objave, fotografije izdelave so v galeriji.

Da ne bo dolgčas, reklamni film za originalno igračo:

Читать далее…

Miška iz miške

Na instructables.com lahko vsakdo najde kak preprost projekt, ki bi se ga lahko lotil v prostem času. Eden najbolj čudnih, ki sem jih videl v zadnjem času, je vsekakor izdelava računalniške miške iz prave. Kupite crknjeno miš, ki bi bila sicer hrana za pitone, jo preparirate in nagačite s čim manjšo optično miško. Z malo sreče bo stvar zgledala dovolj grozno, da vam bodo nadležne sošolke / sodelavke / znanke in znanci / sodelavci / sošolci vaš računalnik raje pustili pri miru.

Kastor in Poluks

V Italiji že lep čas izdelujejo tudi vesoljska plovila. Sedaj so se lotili tudi robotskih vesoljskih letal. No, pravzaprav so se jih lotili že leta 2002. Prvo letalo, Kastor, so z balona na višini več kot 20km spustili na tla že pred tremi leti, pred kratkim pa so dokončali tudi njegovega dvojčka, Poluksa.

Manjkata le še Pluton in Nero, potem pa bomo tudi mi lahko prispevali k razvoju vesoljske tehnike, naprimer tako, da bomo pihali, otroci, pihali!

Photosynth

Že pred nekaj leti so pri Microsoftu pokazali nadvse impresiven demo. Slike, za katere je znano, kje so bile posnete, so se naučili razporediti tako, da se lahko prelivajo iz ene v drugo.

Pred kratkim so podobno funkcionalnost Googlovci dodali svojemu Google maps oz. Google streetview. Gugljev izdelek se pred tem, kar delajo Microsoftovci, skrije. Spodaj si lahko ogledate demo Microsoftovega Bing Maps.