-
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)
Następne wpisy z tego wątku
- 22.10.15 17:11 firr
- 22.10.15 23:37 Radoslaw Jocz
Najnowsze wątki z tej grupy
- 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
- Ada 2022 Language Reference Manual to be Published by Springer
- Press Release - AEiC 2023, Ada-Europe Reliable Softw. Technol.
- Ada-Europe - AEiC 2023 early registration deadline approaching
- Ada-Europe Int.Conf. Reliable Software Technologies, AEiC 2023
- Ile cykli zajmuje mnożenie liczb 64-bitowych?
Najnowsze wątki
- 2024-06-29 eSIM, praktyczne doświadczenia z różnymi operatorami?
- 2024-06-30 1250 euro za rezygnacje z posiadania samochodu
- 2024-06-29 poszedł na czerwonym i uderzył w motur
- 2024-06-29 Tesla to wóz dla mnie
- 2024-06-30 Podstawa bezpiecznikowa jako rozłącznik DC
- 2024-06-29 Napięcie akumulatora wyłączające UPS / jakie nowe akumulatory do UPS?
- 2024-06-30 Basen i chłodzenie w w wentylacji mechanicznej
- 2024-06-29 na chuj mieć dom?
- 2024-06-29 Marki => ERP Implementer <=
- 2024-06-29 Warszawa => SQL Database Developer <=
- 2024-06-29 Poznań => Senior PHP Developer (Symfony) <=
- 2024-06-29 Warszawa => Senior Cloud DevOps Engineer (Azure) <=
- 2024-06-29 Gdańsk => Kierownik Działu Spedycji Międzynarodowej <=
- 2024-06-29 Ulm => IT Network Engineer <=
- 2024-06-29 Warszawa => Full Stack .Net Engineer <=