Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > pl.comp.programming > #29261 > unrolled thread

Obrys płaszczyzny

Started byMateusz Bogusz <mabakay@o2.pl>
First post2016-12-01 19:28 +0100
Last post2017-01-15 14:27 -0800
Articles 5 — 4 participants

Back to article view | Back to pl.comp.programming


Contents

  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

#29261 — Obrys płaszczyzny

FromMateusz Bogusz <mabakay@o2.pl>
Date2016-12-01 19:28 +0100
SubjectObrys 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]


#29262

FromBorneq <borneq@antyspam.hidden.pl>
Date2016-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]


#29263

FromMateusz Bogusz <mabakay@o2.pl>
Date2016-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]


#29264

Frombartekltg <bartekltg@gmail.com>
Date2016-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]


#29321

Fromxuesheng <pawel.f.biernacki@gmail.com>
Date2017-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