-
X-Received: by 10.140.28.117 with SMTP id 108mr20503qgy.38.1414429624360; Mon, 27 Oct
2014 10:07:04 -0700 (PDT)
X-Received: by 10.140.28.117 with SMTP id 108mr20503qgy.38.1414429624360; Mon, 27 Oct
2014 10:07:04 -0700 (PDT)
Path: news-archive.icm.edu.pl!news.icm.edu.pl!newsfeed.pionier.net.pl!news.glorb.com!
peer02.iad.highwinds-media.com!news.highwinds-media.com!feed-me.highwinds-media
.com!r10no659687igi.0!news-out.google.com!u5ni12qab.1!nntp.google.com!u7no53032
8qaz.1!postnews.google.com!glegroupsg2000goo.googlegroups.com!not-for-mail
Newsgroups: pl.comp.programming
Date: Mon, 27 Oct 2014 10:07:04 -0700 (PDT)
In-Reply-To: <m2lp5j$q7o$1@node2.news.atman.pl>
Complaints-To: g...@g...com
Injection-Info: glegroupsg2000goo.googlegroups.com; posting-host=31.61.136.116;
posting-account=VFwkXwoAAADdT4-lLKRZrMYkTjizGoyn
NNTP-Posting-Host: 31.61.136.116
References: <m2lp5j$q7o$1@node2.news.atman.pl>
User-Agent: G2/1.0
MIME-Version: 1.0
Message-ID: <4...@g...com>
Subject: Re: Łączenie wielokątów
From: Wojciech Muła <w...@g...com>
Injection-Date: Mon, 27 Oct 2014 17:07:04 +0000
Content-Type: text/plain; charset=ISO-8859-2
Content-Transfer-Encoding: quoted-printable
X-Received-Bytes: 3162
X-Received-Body-CRC: 604588584
Xref: news-archive.icm.edu.pl pl.comp.programming:206819
[ ukryj nagłówki ]On Monday, October 27, 2014 4:42:45 PM UTC+1, Borneq wrote:
> Pierwsza rzecz to szybka detekcja, czy wielokąty dotykają się czy też
> przecinają. Można dość szybko odrzucić gdy nie przecinają się prostokąty
> ograniczające wielokąty (niekoniecznie wypukłe)
Zamiast prostokątów możesz użyć wielokątów-otoczek wypukłych zbudowanych
w oparciu o wierzchołki wielokąta. Testy przecięcia wielokątów wypukłych
są całkiem proste, a masz dużo większą precyzję niż dla prostokątów.
Ale to tylko propozycja.
> Druga sprawa - gdy mamy dwa wielokąty, które się przecinają lub dotykają
> to jak je połączyć w jeden?
Chodzi Ci o sumę boolowską, tak? Potrzebujesz tak naprawdę policzyć
wszystkie przecięcia krawędzi obu wielokątów i je podzielić
w tych punktach na "pododcinki". W tym momencie każdy odcinek może
być jednoznacznie zakwalifikowany, czy leży wewnątrz wielokąta 1 lub 2
(albo jest krawędzią) - te, które leżą wewnątrz któregokolwiek
wielokąta kasujesz. Klasyfikację "pododcinków" możesz sprowadzić do
stwierdzenia, czy którykolwiek jego punkt (np. środkowy) należy do
wielokąta.
Policzenie wszystkich przecięć możesz zrobić metodą zamiatania,
tu masz opis: http://wazniak.mimuw.edu.pl/index.php?title=Zaawanso
wane_algorytmy_i_struktury_danych/Wyk%C5%82ad_12#prz
ecinanie_sie_zbioru_odcinkow
Chociaż, jeśli nie masz wielokątów o dużej liczbie krawędzi możesz
na początek zrobić naiwną metodą każdy-z-każdym.
Natomiast stwierdzenie, czy punkt należy do wielokąta można zrobić
na wiele sposobów: http://erich.realtimerendering.com/ptinpoly/
Prosty do zaprogramowania jest "Crossing test".
Generalnie nie jest to bardzo trudne, ale trzeba uważać w przypadkach
skrajnych. Rozważ użycie gotowca, np. http://www.cgal.org/.
w.
Następne wpisy z tego wątku
Najnowsze wątki z tej grupy
- Xiaomi [Chiny - przyp. JMJ] produkuje w całkowitych ciemnościach i bez ludzi
- Prezydent SZAP/USONA Trump ułaskawił prezydenta Hondurasu Hernandeza skazanego na 45 lat więzienia
- Rosjanie chwalą się prototypem komputera kwantowego. "Najważniejszy projekt naukowy Rosji"
- A Szwajcarzy kombinują tak: FinalSpark grows human neurons from stem cells and connects them to electrode arrays
- Re: Najgorszy język programowania
- NOWY: 2025-09-29 Alg., Strukt. Danych i Tech. Prog. - komentarz.pdf
- Na grupie comp.os.linux.advocacy CrudeSausage twierdzi, że Micro$lop używa SI do szyfrowania formatu dok. XML
- Błąd w Sofcie Powodem Wymiany 3 Duńskich Fregat Typu Iver Huitfeldt
- Grok zaczął nadużywać wulgaryzmów i wprost obrażać niektóre znane osoby
- Can you activate BMW 48V 10Ah Li-Ion battery, connecting to CAN-USB laptop interface ?
- We Wrocławiu ruszyła Odra 5, pierwszy w Polsce komputer kwantowy z nadprzewodzącymi kubitami
- Ada-Europe - AEiC 2025 early registration deadline imminent
- John Carmack twierdzi, że gdyby gry były optymalizowane, to wystarczyły by stare kompy
- Ada-Europe Int.Conf. Reliable Software Technologies, AEiC 2025
- Linuks od wer. 6.15 przestanie wspierać procesory 486 i będzie wymagać min. Pentium
Najnowsze wątki
- 2026-01-29 KSeF - 13 wątpliwości
- 2026-01-29 A ja się pochwalę
- 2026-01-29 Warszawa => Mid/Senior IT Recruiter <=
- 2026-01-29 Warszawa => Senior Java Developer <=
- 2026-01-29 Warszawa => IT Recruiter <=
- 2026-01-28 Degradacja
- 2026-01-28 Wysoki Sąd poinstruował czego unikać wyzywając Owsiaka "Równiejszego"
- 2026-01-28 Białystok => Solution Architect (Workday) - Legal Systems <=
- 2026-01-28 Białystok => Preseles Inżynier (background baz danych) <=
- 2026-01-28 Wrocław => Konsultant wdrożeniowy ERP <=
- 2026-01-28 Łódź => Microsoft Engineer <=
- 2026-01-28 Białystok => Tester manualny <=
- 2026-01-27 Tradycja ciągania posłów po sądach za wystąpienia w Sejmie będzie kontynuowana [Lepper 2]
- 2026-01-27 Pierwszy raz sprzedano więcej samochodów zeeletryfikowanych niż ice
- 2026-01-27 Elektryczny Kałasznikow




Jak kupić pierwsze mieszkanie? Eksperci podpowiadają