• gelistirdigi iki cok unlu algoritmasiyla taninir. (bkz: cizgi) (bkz: cember) algoritmaları carpmas bolmez cok hizli olur bu sebepten, halen ibmde calistigi rivayet olunur..
  • bir noktadan diger noktaya giden bir dogrunun sabit hareket ettigi eksenin karsit ekseninde ilerlemesi gereken adim sayisini hesaplamayi, toplama ve cikarma basitligine indiren, kendi ismiyle anilan algoritmanin mucidi. (bkz: mucid)
  • eksensel adım sayıları zaten toplama ve cıkarmadır. x ekseni boyunca: x2-x1, y ekseni boyunca y2-y1 kadar adim vardir. muhim olan bu adimlar arasi orandır ki cogu zaman realda gerceklesen bu islem basit toplama cikarma islemlerine dokulebilmektedir bu algoritma sayesinde...
  • adım adım giderken hesaplanmakta kullanıldığı için y(x) bilinmezdir, dolayısıyla y2-y1 değil y(x)-y(x-1)i kolay hesaplayan algoritmadır. bu durumda x ekseni boyunca x2-x1, y ekseni boyunca y2-y1 adım vardır demek, "3 beyaz 5 kırmızı topun olduğu bir torbadan 4 tane top çekildiğinde en az ikisinin kırmızı olma ihtimali kaçtır" gibi bir soruya "torbada 8 top var abi" cevabı vermekle aynı şeydir, bresenham güzel bir insandır.
  • bresenhamj@winthrop.edu adresinden ula$ilabilecek ki$i..
  • ayrica (bkz: dda).
  • bresenham algoritmasinda carpma ve bolme vardir (cok az) fakat karekok ya da cos, sin gibi yavas islemler olmadigi icin canavar bir algoritmadir kendisi.
  • kendi dahilinde "doğru çizme" algoritması bulundurmayan, sdl gibi apiları kullanırken hayat kurtarmış "line algorithm"i yazmış olan üstad. aynı güzellikte bir kaç algoritma daha kullandım fakat anlaşılabilirliği, hızı açısından bresenham'ınki en iyisiydi. c/c++'da şöyledir kendileri.

    not: putpixel kullanıcı tanımlı bir fonksiyondur. gidin kendinizinkini yazın.

    void drawline(sdl_surface* surface, int x1, int y1, int x2, int y2) {
    int x, y;
    int dx, dy;
    int incx, incy;
    int balance;

    if (x2 >= x1)
    {
    dx = x2 - x1;
    incx = 1;
    }
    else
    {
    dx = x1 - x2;
    incx = -1;
    }

    if (y2 >= y1)
    {
    dy = y2 - y1;
    incy = 1;
    }
    else
    {
    dy = y1 - y2;
    incy = -1;
    }

    x = x1;
    y = y1;

    if (dx >= dy)
    {
    dy <<= 1;
    balance = dy - dx;
    dx <<= 1;

    while (x != x2)
    {
    putpixel(surface,x, y,yellow);
    if (balance >= 0)
    {
    y += incy;
    balance -= dx;
    }
    balance += dy;
    x += incx;
    } putpixel(surface,x, y,yellow);
    }
    else
    {
    dx <<= 1;
    balance = dx - dy;
    dy <<= 1;

    while (y != y2)
    {
    putpixel(surface,x, y,yellow);
    if (balance >= 0)
    {
    x += incx;
    balance -= dy;
    }
    balance += dx;
    y += incy;
    } putpixel(surface,x, y,yellow);
    }
    }
  • bir formun içerisini boyamak için de bir algoritması bulunan insan.
  • çarpma ve bölme işlemini her adımda (her adım derken her pixel için) yapmadığı için çarpma işlemi yoktur denir. sadece başta sabitleri hesaplarken bir çarpma işlemi (oda 2 ile çarpma yani, bir kere shift ediyorsun sadece) onun dışında da yoktur. 'dda' da yoktur yoksa çarpma işlemi

    bu algoritmanın bu kadar iyi olmasının sebebi sadece integer lar üzerinde işlem yaparak çizim noktalarını bulmasıdır. dda da ise toplama işlemleri float* tipi değerler üzerinde yapılır ve ayrıca her seferinde round kullanılır.
hesabın var mı? giriş yap