eGospodarka.pl
eGospodarka.pl poleca

eGospodarka.plGrupypl.comp.programmingbledy na fixedpointach (drawline)bledy na fixedpointach (drawline)
  • Data: 2014-03-26 19:18:30
    Temat: bledy na fixedpointach (drawline)
    Od: firr <p...@g...com> szukaj wiadomości tego autora
    [ pokaż wszystkie nagłówki ]

    kiedys z lenistwa poniewaz nei chialo mi sie
    wpisywac algorytmu bressenhama (vo to wymagalo
    lookiniecia do google itp)

    i napisalem taka procedure na fixedpointach

    void DrawLineUnsafe(int xs, int ys, int xk, int yk, unsigned color)
    {

    int abs_width = abs(xk-xs);
    int abs_height = abs(yk-ys);

    int how_many_pixels = max(abs_width, abs_height);

    SetPixel(xs, ys, color);

    if(how_many_pixels==0) return;

    int x = xs<<16;
    int y = ys<<16;

    int dx = ((xk-xs)<<16)/how_many_pixels;
    int dy = ((yk-ys)<<16)/how_many_pixels;


    for(int i=0; i<how_many_pixels; i++)
    {
    x += dx ;
    y += dy ;

    SetPixel(x>>16, y>>16, color);

    //setpixel is inline routine bitmap[y*width+x]=color

    }
    }

    onba niby dziala, nie wiem o ile tez jest wolniejsza
    od bressenhama tylko martwi mnie problem bledu

    niby jest ona przeznaczona do rysowania lini zna 16bitowym zakresie, (x,y od 0 do
    65535 czy cos w tym stylu ) ale czy jest ona w tym zakresie (na bitmapie do 65tys
    pixeli) bezbledna (w stosunku do bressenhama) czy tez sa jakies bledy i odchylki dla
    jakichs przypadkow - i jak to obliczyc?

Podziel się

Poleć ten post znajomemu poleć

Wydrukuj ten post drukuj


Następne wpisy z tego wątku

  • 27.03.14 11:18 firr

Najnowsze wątki z tej grupy


Najnowsze wątki

Szukaj w grupach

Eksperci egospodarka.pl

1 1 1

Wpisz nazwę miasta, dla którego chcesz znaleźć jednostkę ZUS.

Wzory dokumentów

Bezpłatne wzory dokumentów i formularzy.
Wyszukaj i pobierz za darmo: