-
X-Received: by 10.157.44.219 with SMTP id e27mr3133267otd.5.1489416387757; Mon, 13
Mar 2017 07:46:27 -0700 (PDT)
X-Received: by 10.157.44.219 with SMTP id e27mr3133267otd.5.1489416387757; Mon, 13
Mar 2017 07:46:27 -0700 (PDT)
Path: news-archive.icm.edu.pl!news.icm.edu.pl!newsfeed.pionier.net.pl!news.glorb.com!
u69no2865455ita.0!news-out.google.com!78ni13237itm.0!nntp.google.com!w124no2868
968itb.0!postnews.google.com!glegroupsg2000goo.googlegroups.com!not-for-mail
Newsgroups: pl.comp.programming
Date: Mon, 13 Mar 2017 07:46:27 -0700 (PDT)
In-Reply-To: <oa60b6$o6j$1@node2.news.atman.pl>
Complaints-To: g...@g...com
Injection-Info: glegroupsg2000goo.googlegroups.com; posting-host=5.172.255.227;
posting-account=Sb6m8goAAABbWsBL7gouk3bfLsuxwMgN
NNTP-Posting-Host: 5.172.255.227
References: <0...@g...com>
<oa4g7g$b9j$1@node2.news.atman.pl>
<b...@g...com>
<2...@g...com>
<c...@g...com>
<oa60b6$o6j$1@node2.news.atman.pl>
User-Agent: G2/1.0
MIME-Version: 1.0
Message-ID: <3...@g...com>
Subject: Re: nastepny punkt
From: fir <p...@g...com>
Injection-Date: Mon, 13 Mar 2017 14:46:27 +0000
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: quoted-printable
Xref: news-archive.icm.edu.pl pl.comp.programming:210314
[ ukryj nagłówki ]W dniu poniedziałek, 13 marca 2017 12:38:15 UTC+1 użytkownik bartekltg napisał:
> On 13.03.2017 01:15, fir wrote:
> > W dniu niedziela, 12 marca 2017 23:47:04 UTC+1 użytkownik fir napisał:
> >> W dniu niedziela, 12 marca 2017 23:23:35 UTC+1 użytkownik fir napisał:
> >>> W dniu niedziela, 12 marca 2017 22:57:05 UTC+1 użytkownik bartekltg napisał:
> >>>> On 12.03.2017 22:46, fir wrote:
> >>>>> szukam dosyc prostego algorytmu
> >>>>>
> >>>>> mam punkt int x,y np 0,0
> >>>>> i chce znalezc nastepny punkt
> >>>>> w kierunku jakiegos dowolnego punktu
> >>>>> int dist_x, dist_y, tak jak gdybym
> >>>>> rysowal linie prostą
> >>>>>
> >>>>> jak wzynaczyc ten przylegly punkt?
> >>>>>
> >>>>
> >>>> Algorytm Bresenhama
> >>>>
> >>> raczej fragment bressenhama ale jaki
>
> Z testów wygląda, że całego.
>
>
>
> >>
> >> w sumie to chyba bedzie cos takiego
> >>
> >> int2 NextPointTowards(int x, int y, int dest_x, int dest_y)
> >> {
> >> int2 n = {x, y};
> >>
> >> int dx = dest_x - x;
> >> int dy = dest_y - y;
> >>
> >> int sx = sign(dx);
> >> int sy = sign(dy);
> >>
> >> if(sx==0) n.y += sy;
> >> else if(sy==0) n.x += sx;
> >> else
> >> {
> >> float m = fabs(((float)dy)/dx);
>
> a to da się zrobić bez floatów. Choćby tak:
> if ( 2*abs(dx) < abs(dy) )...
> else if ( abs(dx) > 2*abs(dy) )...
>
> >>
> >> if( m < 0.5) n.x += sx;
> >> else if( m > 2.0) n.y += sy;
> >> else { n.x += sx; n.y += sy; }
> >> }
> >>
> >> return n;
> >>
> >> }
> >>
> >> mozna by wywalic dzielenie zastepujac ifem ale nie wiedomo czy if szybszy
> >>
> >> pozatym w dzialaniu to chyba nie zastpi bresenhama (trzebby sprawdzic) choc mw o
to mi chodzi bo taka procedura jest jaby bardziej ogolna
> >
> > zrobilem testy i okazalo sie ze to nie dziala dobrze
>
> >
> > http://minddetonator.htw.pl/compact.jpg
> >
> > gorna linia to normalne a dolna dolna linia to wynik generowania tych punktow
> > wyzej
>
> Nic dziwnego. Ten kod pozwala na wybór jednego z 8 kierunków.
> Będzie używał 2 kierunków na zmianę tylko wtedy, gdy jest na ich
> granicy.
> Efektywnie będzie wiec tworzył proste jedynie w 16 różnych kierunkach.
>
chyba sluszna uwaga raczej nie przemyslalem tego
> Aby temu zapobiec, trzeba albo pamiętać linię, po której się porusza
> (skomplikowane, niepotrebne i, a do tego jak się domyślam, że śledzony
> punkt się porusza:) )
> albo pamiętać ułamkową pozycję i robić ideowo jak u Bresenhama.
>
>
> I teraz pytanie, co tak naprawdę robisz.
>
> Jeśli rysujesz linię,
> - Użyj Bresenhama.
> - Twoja biblioteka graficzna nie ma rysowania linii? Muis mieć. Niech
> ona to zrobi, wtedy karta graficzna narysuje linię, nie procek;-)
>
> Jeśli jets to ludzik goniący za być możę ruchomym punktem,
> idea jest ta sama (błąd-korekcja) - ludzik ma pozycję znaną
> dokałdniej niż 'ten piksel'. Nie da się sprowadzić do wspolnego
> mianownika jak dla stałej linii, więc albo float (najwygdniej) albo
> 'stały przecinek', czyli np pozycja z to int z dokłądnosćią do 1/1024
> piksela.
>
a masz jakis matematyczny/logiczny dowód
ze tego sie nie da zrobic?
dla mnie nie jest to takie pewne (nie mam zdania)
tego co uzywam raczej uzywalbym do rysowania lini - taka forma jest bardziej 'ogolna'
np latwo z tego zrobic rysowanie lini przerywanej, w dwu kolorach -- no i mozna tez
uogolnic na nielinie (ale przypadek o ktory pytam to rysowanie lini)
moge przerobic na floaty ale troche szkoda ze nie kojarze poprawnej wersji
na intach - ew mozna kombinowac z zapamietywaniem tego subpixelowego przesuniecia
jako wewnetrznej zmiennej statycznej - temat niby prosty a wymaga troche przemyslania
> BTW, jesli to ludzik i pogoń, to tak, jak to opisałeś, ma jeszcze jedną
> wadę. Ruch pionowy i poziomy jest wolniejszy niż po przekątnych
> o sqrt(2).
>
> pzdr
> bartekltg
Następne wpisy z tego wątku
- 13.03.17 17:09 fir
- 13.03.17 17:50 fir
- 13.03.17 18:10 bartekltg
- 13.03.17 19:16 fir
- 13.03.17 20:30 bartekltg
- 13.03.17 20:42 fir
- 13.03.17 22:29 bartekltg
- 13.03.17 22:53 fir
- 14.03.17 14:24 Adam Wysocki
- 15.03.17 16:08 fir
Najnowsze wątki z tej grupy
- 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)
- 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
Najnowsze wątki
- 2025-01-29 Warszawa => Developer Microsoft Dynamics 365 Finance & Operations (D36
- 2025-01-29 Warszawa => Junior Rekruter <=
- 2025-01-29 Warszawa => Mid IT Recruiter <=
- 2025-01-29 Białystok => UX Designer <=
- 2025-01-29 Katowice => Regionalny Kierownik Sprzedaży (OZE) <=
- 2025-01-29 Warszawa => Expert Recruiter 360 <=
- 2025-01-29 Zdalny podpis
- 2025-01-29 Nazbyt "muzyczne" słuchawki
- 2025-01-29 Warszawa => QA Engineer <=
- 2025-01-29 Prawo jak je [nie]rząd rozumie.
- 2025-01-29 Gdańsk => Specjalista ds. Sprzedaży <=
- 2025-01-29 Ostrów Wielkopolski => Konsultant Wdrożeniowy Comarch XL/Optima (Ksi
- 2025-01-29 Warszawa => Software .Net Developer <=
- 2025-01-28 Ściąganie hasła frezem
- 2025-01-28 Rok 1973