Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > pl.comp.programming > #29261 > unrolled thread
| Started by | Mateusz Bogusz <mabakay@o2.pl> |
|---|---|
| First post | 2016-12-01 19:28 +0100 |
| Last post | 2017-01-15 14:27 -0800 |
| Articles | 5 — 4 participants |
Back to article view | Back to pl.comp.programming
Obrys płaszczyzny Mateusz Bogusz <mabakay@o2.pl> - 2016-12-01 19:28 +0100
Re: Obrys płaszczyzny Borneq <borneq@antyspam.hidden.pl> - 2016-12-01 19:58 +0100
Re: Obrys płaszczyzny Mateusz Bogusz <mabakay@o2.pl> - 2016-12-01 20:39 +0100
Re: Obrys płaszczyzny bartekltg <bartekltg@gmail.com> - 2016-12-01 21:15 +0100
Re: Obrys płaszczyzny xuesheng <pawel.f.biernacki@gmail.com> - 2017-01-15 14:27 -0800
| From | Mateusz Bogusz <mabakay@o2.pl> |
|---|---|
| Date | 2016-12-01 19:28 +0100 |
| Subject | Obrys płaszczyzny |
| Message-ID | <o1pq3v$668$1@node2.news.atman.pl> |
Cześć, Trójkąt opisany jest za pomocą trzech wierzchołków. Każde dwa wierzchołki tworzą krawędź. Posiadam zbiór takich trójkątów gdzie każdy ma co najmniej jedną wspólną krawędź z innym trójkątem ze zbioru. Zakładając że kształt na płaszczyźnie który tworzą nie musi być wypukły, jak znaleźć te krawędzie które tworzą obrys kształtu? Jeżeli niejasno opisałem problem to stworzę ilustrację. -- Pozdrawiam, Mateusz Bogusz
[toc] | [next] | [standalone]
| From | Borneq <borneq@antyspam.hidden.pl> |
|---|---|
| Date | 2016-12-01 19:58 +0100 |
| Message-ID | <o1prsd$v4u$1@node1.news.atman.pl> |
| In reply to | #29261 |
W dniu 01.12.2016 o 19:28, Mateusz Bogusz pisze: > Cześć, > > Trójkąt opisany jest za pomocą trzech wierzchołków. Każde dwa > wierzchołki tworzą krawędź. Posiadam zbiór takich trójkątów gdzie każdy > ma co najmniej jedną wspólną krawędź z innym trójkątem ze zbioru. > Zakładając że kształt na płaszczyźnie który tworzą nie musi być wypukły, > jak znaleźć te krawędzie które tworzą obrys kształtu? > > Jeżeli niejasno opisałem problem to stworzę ilustrację. > Może coś w rodzaju Weilera - Athertona? http://pilat.free.fr/english/pdf/weiler.pdf http://stackoverflow.com/questions/2667748/how-do-i-combine-complex-polygons albo wypukła otoczka https://pl.wikipedia.org/wiki/Algorytm_Grahama http://www.algorytm.org/geometria-obliczeniowa/znajdowanie-wypuklej-otoczki-algorytm-grahama.html
[toc] | [prev] | [next] | [standalone]
| From | Mateusz Bogusz <mabakay@o2.pl> |
|---|---|
| Date | 2016-12-01 20:39 +0100 |
| Message-ID | <o1pu9v$aeg$1@node2.news.atman.pl> |
| In reply to | #29262 |
> wypukła otoczka > https://pl.wikipedia.org/wiki/Algorytm_Grahama > http://www.algorytm.org/geometria-obliczeniowa/znajdowanie-wypuklej-otoczki-algorytm-grahama.html O, to będzie to! Co prawda punkty mam w 3D, ale już wiem od czego zacząć. Dzięki :-) -- Pozdrawiam, Mateusz Bogusz
[toc] | [prev] | [next] | [standalone]
| From | bartekltg <bartekltg@gmail.com> |
|---|---|
| Date | 2016-12-01 21:15 +0100 |
| Message-ID | <o1q0d0$ceg$1@node2.news.atman.pl> |
| In reply to | #29263 |
On 01.12.2016 20:39, Mateusz Bogusz wrote: >> wypukła otoczka >> https://pl.wikipedia.org/wiki/Algorytm_Grahama >> http://www.algorytm.org/geometria-obliczeniowa/znajdowanie-wypuklej-otoczki-algorytm-grahama.html >> > > O, to będzie to! Przecież wyraźnei pisałeś, że Twój obiekt nie musi być wypukły. Zamiast obrysu rogalika dostaniesz koło ze spłaszczonym fragmentem. Raczej policz, ile razy każda kawędź występuje. Jeśli nalyży do 2 trójkątów, to jst w środku, jeśli do jednego, to jest obrysem. W ten sposób uzyskasz też obrysy dziur, to może być dobrze, źle, albo obojętnie (bo dziur nie będzie), zależy, co chcesz osiągnać;-) > Co prawda punkty mam w 3D, ale już wiem od czego > zacząć. Dzięki :-) To i tak pewnie interesuje Cię nie obrys, a obrys rzutu na płaszczyznę (rzutnię). A wtedy np obrysem kuli (która brzegu nie ma) powinien być okrąg. To akurat niewielki problem, wysatrczy zignorować trójkąty ustawione 'w złą stronę' względem keirunku rzutowania. pzdr bartekltg
[toc] | [prev] | [next] | [standalone]
| From | xuesheng <pawel.f.biernacki@gmail.com> |
|---|---|
| Date | 2017-01-15 14:27 -0800 |
| Message-ID | <c5154828-ddfc-45b0-b4f3-323ef36600f6@googlegroups.com> |
| In reply to | #29261 |
W dniu czwartek, 1 grudnia 2016 20:28:16 UTC+2 użytkownik Mateusz Bogusz napisał: > Cześć, > > Trójkąt opisany jest za pomocą trzech wierzchołków. Każde dwa > wierzchołki tworzą krawędź. [...] > Jeżeli niejasno opisałem problem to stworzę ilustrację. > > -- > Pozdrawiam, > Mateusz Bogusz Witam, Dawno, dawno temu napisałem dla mojego dziecka skrypt w Perlu, który generował siatki "statków kosmicznych" do wycięcia i sklejenia. Przykładowe siatki można obejrzeć na mojej stronie: http://www.pawelbiernacki.net/4kids/cutandfold/spaceship_notex/index_pl.jsp (Za każdym wejściem pokazuje losowo jeden z dwudziestu statków). Potem ten kod trochę posprzątałem i umieściłem na githubie: https://github.com/pawelbiernacki/Games-LatticeGenerator.git Ciekawy jest dlatego, że z Perla używa Prologu, a Prolog jest wykorzystywany do reprezentowania obiektów geometrycznych za pomocą faktów. Chciałbym polecić Ci to podejście. Dla opisywanego przez Ciebie problemu będziemy mieli np. dwa trójkąty: jest_punktem(a). jest_punktem(b). jest_punktem(c). jest_punktem(d). jest_odcinkiem(ab). jest_odcinkiem(bc). jest_odcinkiem(ca). jest_odcinkiem(bd). jest_odcinkiem(cd). nalezy_do(a,ab). nalezy_do(b,ab). .... nalezy_do(ab,abc). jest_trojkatem(abc). I tak dalej. Szukamy krawędzi, które należą jednego tylko trójkąta, ale można ten sposób programowania wykorzystać bardziej finezyjnie, np. od zadanego punktu obrzeża iterować po krawędziach obrzeża i dodawać wiedzę o tym, które punkty już przeszliśmy. Pozdrawiam, Paweł Biernacki
[toc] | [prev] | [standalone]
Back to top | Article view | pl.comp.programming
csiph-web