eGospodarka.pl
eGospodarka.pl poleca

eGospodarka.plGrupypl.comp.programmingcircle midpoint + windowing, reverse, REAKTYWACJA › Re: circle midpoint + windowing, reverse, REAKTYWACJA
  • X-Received: by 10.140.91.87 with SMTP id y81mr317517qgd.14.1445526698281; Thu, 22 Oct
    2015 08:11:38 -0700 (PDT)
    X-Received: by 10.140.91.87 with SMTP id y81mr317517qgd.14.1445526698281; Thu, 22 Oct
    2015 08:11:38 -0700 (PDT)
    Path: news-archive.icm.edu.pl!news.icm.edu.pl!newsfeed.pionier.net.pl!news.glorb.com!
    kq10no25607316igb.0!news-out.google.com!t36ni5511qge.1!nntp.google.com!m48no975
    860qgd.0!postnews.google.com!glegroupsg2000goo.googlegroups.com!not-for-mail
    Newsgroups: pl.comp.programming
    Date: Thu, 22 Oct 2015 08:11:38 -0700 (PDT)
    In-Reply-To: <d...@g...com>
    Complaints-To: g...@g...com
    Injection-Info: glegroupsg2000goo.googlegroups.com; posting-host=5.172.247.218;
    posting-account=Sb6m8goAAABbWsBL7gouk3bfLsuxwMgN
    NNTP-Posting-Host: 5.172.247.218
    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>
    <d...@g...com>
    User-Agent: G2/1.0
    MIME-Version: 1.0
    Message-ID: <6...@g...com>
    Subject: Re: circle midpoint + windowing, reverse, REAKTYWACJA
    From: firr <p...@g...com>
    Injection-Date: Thu, 22 Oct 2015 15:11:38 +0000
    Content-Type: text/plain; charset=ISO-8859-2
    Content-Transfer-Encoding: quoted-printable
    Xref: news-archive.icm.edu.pl pl.comp.programming:208496
    [ ukryj nagłówki ]

    W dniu czwartek, 22 października 2015 00:36:10 UTC+2 użytkownik Radoslaw Jocz
    napisał:
    > 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)

    mowilem o liniach, okregi juz mnie troche znudzily ;c
    Jak lubisz sie zajmowac takimi rzeczami i nie masz co robic to moze napisz procedure
    do wydajnego rysowania beziera (kubicznego tj przez 4 punkty) albo/oraz procedure do
    rysowania/renderowania wypelnionego ksztaltu
    zrobionego z paru/nastu bezierow (czego mozna by uzyc do np rysowania czegos w stylu
    fontow true type) - lub jeszcze jakies inne potencjalnie przydatne procedury tego
    rodzaju

    jest to ciekawy temat moim zdaniem warty pobawienia sie jak ktos ma czas, sam
    ostatnio robie inne rzeczy i nei mam wlasnie tego czasu ale do ew dyskusji moge sie
    właczyc

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: