eGospodarka.pl
eGospodarka.pl poleca

eGospodarka.plGrupypl.comp.programmingcircle midpoint + windowing, reverse, REAKTYWACJA › Re: circle midpoint + windowing, reverse, REAKTYWACJA
  • X-Received: by 10.140.85.242 with SMTP id n105mr260787qgd.8.1445466968819; Wed, 21
    Oct 2015 15:36:08 -0700 (PDT)
    X-Received: by 10.140.85.242 with SMTP id n105mr260787qgd.8.1445466968819; Wed, 21
    Oct 2015 15:36:08 -0700 (PDT)
    Path: news-archive.icm.edu.pl!news.icm.edu.pl!newsfeed.pionier.net.pl!feeder.erje.net
    !1.eu.feeder.erje.net!news.ripco.com!usenet.blueworldhosting.com!feeder01.bluew
    orldhosting.com!border2.nntp.dca1.giganews.com!nntp.giganews.com!kq10no24953619
    igb.0!news-out.google.com!t36ni445qge.1!nntp.google.com!m48no643550qgd.0!postne
    ws.google.com!glegroupsg2000goo.googlegroups.com!not-for-mail
    Newsgroups: pl.comp.programming
    Date: Wed, 21 Oct 2015 15:36:08 -0700 (PDT)
    In-Reply-To: <9...@g...com>
    Complaints-To: g...@g...com
    Injection-Info: glegroupsg2000goo.googlegroups.com; posting-host=80.4.98.181;
    posting-account=ep55TgoAAAD3FPdT4j2MbhszjClpO1MM
    NNTP-Posting-Host: 80.4.98.181
    References: <f...@g...com>
    <7...@g...com>
    <5...@g...com>
    <f...@g...com>
    <c...@g...com>
    <2...@g...com>
    <f...@g...com>
    <5...@g...com>
    <f...@g...com>
    <7...@g...com>
    <9...@g...com>
    User-Agent: G2/1.0
    MIME-Version: 1.0
    Message-ID: <d...@g...com>
    Subject: Re: circle midpoint + windowing, reverse, REAKTYWACJA
    From: Radoslaw Jocz <r...@g...com>
    Injection-Date: Wed, 21 Oct 2015 22:36:08 +0000
    Content-Type: text/plain; charset=ISO-8859-1
    Lines: 53
    Xref: news-archive.icm.edu.pl pl.comp.programming:208495
    [ ukryj nagłówki ]

    On Wednesday, 21 October 2015 08:42:31 UTC+1, firr wrote:
    >
    > tak czy owak to z zolwiem wydaje mi sie ciekawa metoda ale nie mam sily w tym teraz
    podlubac mam wazniejsze sprawy na glowie
    >
    > co do wyjasnien algorytmow to chwile zastanowailem sie jak wyjasnic zwyklego
    bressenhama, nie mam czasu sie wczytywac
    > w tego klasycznego bressenhama
    >

    Masz na mysli linie prosta jesli chodzi o bresenhama czy okrag?
    Zakladam ze poprostu myslisz o midpoint a mowisz bresenham, bo o okregach mowimy.

    Wyjasnienie dzialania modpointa jest proste. Mam 10 slajdow z wyprowadzeniami
    analitycznymi ale nie chce mi sie tego tutaj przepisywac.

    Podstawowa idea dzialania midpointa polega na rownaniu okregu i inkrementacjach x i
    y. Zmienna decyzyjna opiera sie na rownaniu okregu
    i sluzy jedynie do sprawdzenia czy promien r jest w miare dobrze zachowany w danym
    punkcie p(x,y)

    ponadto w przypadku x++; zwiekszamy promien dla x++; y--; zminiejsza sie promien
    przyrosty zmiennej decyzyjnej d sa oparte na odpowiednim wyprowadzeniu analitycznym

    startujac od dwolnego punkty p(x,y) mozna by zainicjowac d = x^2+y^2-r^2,
    jednak nie jest to dokladnie to samo gdy startuje sie od x=0; y=r; d = 1-r
    bo w midponcie d jest inkrementowane skokowo na podstawie poprzedniej wartosci, itd,
    wiec w konsekwencji beda drobne roznice w porownaniu z orginalnym midpointem

    wczesniej zastanawialem sie nad tym czy dalo by rade analitycznie wyprowadzic dane d
    = f(x,y)
    aby szybko zainicjalizowac d identycznie jak jest w orginalnym midpoincie
    i rysowac identycznie co do piksela startujac od dowolnego punktu,
    ale mysle ze to niemozliwe

    ponadto przydalo by sie nawet wiecej
    mial by powiedzmy dane poczatkowe:
    x = x0, r

    trzeba by wyznaczyc
    y0 = f(x0, r)
    d0 = f(x0, y0, r)
    mysle ze takim rozumowaniem niewiele mozna by zdzialac.


    uwazam wiec ze w przypadku rysowania okregu lub wycinka okregu z okienowaniem
    powinno sie najwyzej 1 raz inicjowac zmienna d dla danego okregu,
    mozna startowac od dowolnego punktu ale dobrze gdy to jest tylko 1 raz dla danego
    okregu, dzieki temu cwiartki i oktety bedz wzajemnie idealnie dopasowane,

    mozna to zrobic tak jak mowilem juz kiedys wczesniej wyznaczyc zakresy dla kazdej
    cwiartki i oktetu i znalezc minimalny konieczny i wystarczajacy zakres dziedziny
    funkcji ktora jest konieczna do narysowania wszystkich punktow okregu przez odbicia,

    wtedy bedzie 1 petla i znany z gory zakres od-do
    w petli sa sprawdzenia czy dany punkt jest jest
    mozliwy do narysowania dla danego odbicia (jest 8 mozliwych odbic)
    8 sprawdzen czy jest w oknie ) + (8 dodatkowo dla wycinka czy jest w zakresie katow
    np podanych parami liczb, dx1, dy1, dx2, dy2 lub w inny sposob)

    nie jest to mozliwa najszybsza metoda ale wystarczjaco dokladna i szybka
    dla duzych promieni,
    ponadto ma 2 wazne cechy
    1. wszystkie rysowane oktety danego okregu sa idealnie symetryczne wzgledem siebie
    2. rozpoczecie rysowania pierwszego widocznego punktu nie wymaga iteracji petli bo
    punkt startowy rozny od P(0,r) jest obliczony (w przeciwienstwie do orginalnego
    midpointa)

Podziel się

Poleć ten post znajomemu poleć

Wydrukuj ten post drukuj


Następne wpisy z tego wątku

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: