Algoritmus: usecka, kruznice

Va_Sm spiritusII@seznam.cz
Pondělí Září 3 19:03:35 CEST 2007


Snail Instruments napsal(a):
>> kdysi jsem pocital v PICu primku, jednalo se o prevodnit z PC mys na
>> AMIGA mys. Stahnite si z meho webu navod na tento prevodnik. Jedine co
>> tam bylo slozitejsi je deleni, to vzdy probehlo v 8mi pruchodedech
>> smickou, jinak uz nasledovalo pricitani a nebo odecitani.....
>>     
>
> Na usecku neni potreba deleni. Viz treba:
> http://en.wikipedia.org/wiki/Bresenham%27s_line_algorithm
> velmi nazorny je odstavec 'Different approach to the algorithm', 
> kruznici popisuje nize odstavec 'Circle Variant'
>
> J. Hanzal
>
> _______________________________________________
> HW-list mailing list  -  sponsored by www.HW.cz
> Hw-list@list.hw.cz
> http://list.hw.cz/mailman/listinfo/hw-list
>
> __________ Informace od NOD32 2500 (20070903) __________
>
> Tato zprava byla proverena antivirovym systemem NOD32.
> http://www.nod32.cz
>
>
>
>   
Ano, podobny algoritmus jsem ve vysledku pouzil.
Ona jde i kruznice bez deleni,sinu nebo odmocnin

void Kruh(int xCenter, int yCenter, int r){

    int x=0,y=r;
    int d=3-(2*r);
    while(x<=y){

        putpixel(xCenter+x,yCenter+y,15);
        putpixel(xCenter+y,yCenter+x,15);
        putpixel(xCenter-x,yCenter+y,15);
        putpixel(xCenter+y,yCenter-x,15);
        putpixel(xCenter-x,yCenter-y,15);
        putpixel(xCenter-y,yCenter-x,15);
        putpixel(xCenter+x,yCenter-y,15);
        putpixel(xCenter-y,yCenter+x,15);

        if (d<0)
            d += (4*x)+6;
        else
        {
            d += (4*(x-y))+10;
            y -= 1;
        }
        x++;

    }
}




Další informace o konferenci Hw-list