-
Data: 2015-10-22 17:11:38
Temat: Re: circle midpoint + windowing, reverse, REAKTYWACJA
Od: firr <p...@g...com> szukaj wiadomości tego autora
[ pokaż wszystkie 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
Następne wpisy z tego wątku
- 22.10.15 23:37 Radoslaw Jocz
Najnowsze wątki z tej grupy
- 7. Raport Totaliztyczny: Sprawa Qt Group wer. 424
- TCL - problem z escape ostatniego \ w nawiasach {}
- Nauka i Praca Programisty C++ w III Rzeczy (pospolitej)
- testy-wyd-sort - Podsumowanie
- Tworzenie Programów Nieuprzywilejowanych Opartych Na Wtyczkach
- Do czego nadaje się QDockWidget z bibl. Qt?
- Bibl. Qt jest sztucznie ograniczona - jest nieprzydatna do celów komercyjnych
- Co sciaga kretynow
- AEiC 2024 - Ada-Europe conference - Deadlines Approaching
- Jakie są dobre zasady programowania programów opartych na wtyczkach?
- sprawdzanie słów kluczowych dot. zła
- Re: W czym sie teraz pisze programy??
- Re: (PDF) Surgical Pathology of Non-neoplastic Gastrointestinal Diseases by Lizhi Zhang
- CfC 28th Ada-Europe Int. Conf. Reliable Software Technologies
- Młodzi programiści i tajna policja
Najnowsze wątki
- 2024-11-29 Dławik CM
- 2024-11-29 [OT] Lewe oprogramowanie
- 2024-11-29 Błonie => Sales Specialist <=
- 2024-11-29 Warszawa => IT Expert (Network Systems area) <=
- 2024-11-29 Warszawa => Ekspert IT (obszar systemów sieciowych) <=
- 2024-11-29 Warszawa => Head of International Freight Forwarding Department <=
- 2024-11-29 Białystok => Inżynier Serwisu Sprzętu Medycznego <=
- 2024-11-29 Pómpy ciepła darmo rozdajoo
- 2024-11-29 Białystok => Application Security Engineer <=
- 2024-11-29 Białystok => Programista Full Stack (.Net Core) <=
- 2024-11-29 Gdańsk => Software .Net Developer <=
- 2024-11-29 Wrocław => Key Account Manager <=
- 2024-11-29 Gdańsk => Specjalista ds. Sprzedaży <=
- 2024-11-29 Chrzanów => Specjalista ds. public relations <=
- 2024-11-27 Re: UseGalileo -- PRODUKTY I APLIKACJE UŻYWAJĄ JUŻ DZIŚ SYSTEMU GALILEO