-
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
- Brednie w wiki - hasło Dehomag
- Perfidne ataki krakerów z KRLD na skrypciarzy JS i Pajton
- Instytut IDEAS może zacząć działać: "Ma to być unikalny w europejskiej skali ośrodek badań nad sztuczną inteligencją."
- Instytut IDEAS może zacząć działać: "Ma to być unikalny w europejskiej skali ośrodek badań nad sztuczną inteligencją."
- Instytut IDEAS może zacząć działać: "Ma to być unikalny w europejskiej skali ośrodek badań nad sztuczną inteligencją."
- U nas propagują modę na SI, a w Chinach naukowcy SI po kolei umierają w wieku 40-50lat
- C++. Podróż Po Języku - komentarz
- "Wuj dobra rada" z KDAB rozważa: Choosing the Right Programming Language for Your Embedded Linux Device
- Nowa ustawa o ochronie praw autorskich - opis problemu i szkic ustawy
- Alg. kompresji LZW
- Popr. 14. Nauka i Praca Programisty C++ w III Rzeczy (pospolitej)
- Arch. Prog. Nieuprzywilejowanych w pełnej wer. na nowej s. WWW energokod.pl
- 7. Raport Totaliztyczny: Sprawa Qt Group wer. 424
- TCL - problem z escape ostatniego \ w nawiasach {}
- Nauka i Praca Programisty C++ w III Rzeczy (pospolitej)
Najnowsze wątki
- 2025-05-08 Z jakiego paragrafu podlega ochronie (resortowa) flaga UE w RP3? Bo to nie flaga Obcego PAŃSTWA [KK-137.2]
- 2025-05-08 Usługi, rozliczanie płatności z karty i blika
- 2025-05-08 Lublin => Delphi Programmer <=
- 2025-05-08 Lublin => Programista Delphi <=
- 2025-05-08 Łódź => Mainframe (z/OS, Assembler) Developer <=
- 2025-05-08 Warszawa => Senior Node.js Developer (doświadczenie z framework Nest.
- 2025-05-07 Wielki smog w Watykanie
- 2025-05-07 Polscy czołgiści najlepsi w międzynarodowych zawodach na Łotwie!!!
- 2025-05-07 Znaki wewnętrzne
- 2025-05-07 Czujnik nacisku
- 2025-05-07 Wielki smog w Watykanie Nadal palą węglem w piecach
- 2025-05-07 Kraków => Business Development Manager - Network and Network Security
- 2025-05-07 Białystok => Team Lead Data Engineer (obszar Snowflake) <=
- 2025-05-07 Białystok => Team Lead Data Engineer (Snowflake) <=
- 2025-05-07 Warszawa => IT Recruiter <=