-
1. Data: 2014-12-07 15:49:04
Temat: Dobra reguła przecinania się odcinków - potrzeba szybko
Od: Borneq <b...@a...hidden.pl>
Gdy dwa odcinki przecinają się w zwykły sposób, to oczywiste jest w
którym punkcie i że należy go rozważać. Gorzej gdy odcinki są
współliniowe lub jeden dotyka tylko końcem drugiego.
Do tej pory przyjmowałem że odcinek jest jednostronnie domknięty,
bierzemy pod uwagę punkt startowy ale nie końcowy
<p0,p1) <p1,p2) itd
To jest potrzebne do tego aby dla wielokąta składającego się z punków
p0,p1,p2,..pk nie liczyć przecinania się z sąsiednią krawędzią, bo gdy
obustronnie domknięte: <p0,p1> i <p1,p2> przecina w p1
Jednak teraz chcę napisać implementację algorytmu dzielącego
samoprzecinające się wielokąty na wielokąty proste.
A mam jako trudny przykład:
(50,250)
(150,150)
(200,250)
(100,50)
Nie znajduje żadnego punktu przecięcia,więc nie poprawia a mógłby
znaleźć (150,150)
-
2. Data: 2014-12-07 16:00:52
Temat: Re: Dobra reguła przecinania się odcinków - potrzeba szybko
Od: Borneq <b...@a...hidden.pl>
W dniu 2014-12-07 o 15:49, Borneq pisze:
> A mam jako trudny przykład:
> (50,250)
> (150,150)
> (200,250)
> (100,50)
> Nie znajduje żadnego punktu przecięcia,więc nie poprawia a mógłby
> znaleźć (150,150)
Chociaż z drugiej strony, nie wiem czy potrzeba zmieniać, bo gdy mam
współliniowe:
linia0 (100,100)-(200,200)
linia1 (150,150)-(250,250)
daje (150,150) ale nie (250,250), a gdyby zmienić regułę, to wypadało by
aby dawał te dwa punkty, podczas gdy przecięcie każdej pary daje jeden
punkt.
Z drugiej strony, przykład jaki podałem w poprzednim poście, jak miałby
go podzielić? na trójkąt i linię?
-
3. Data: 2014-12-09 07:18:34
Temat: Re: Dobra reguła przecinania się odcinków - potrzeba szybko
Od: slawek <f...@f...com>
Sprawdzasz, czy kwadraty których przekątnymi są te odcinki są
rozłączne. Jeżeli nie: geometria analityczna, przecięcie prostych.
Patologie wyjdą jako 0==0 lub 0==1. Oczywiście sprawdzasz czy
przecięcie jest punktem każdego odcinka. Trywialne.
-
4. Data: 2014-12-09 07:29:02
Temat: Re: Dobra reguła przecinania się odcinków - potrzeba szybko
Od: Borneq <b...@a...hidden.pl>
W dniu 2014-12-09 o 07:18, slawek pisze:
> Sprawdzasz, czy kwadraty których przekątnymi są te odcinki są rozłączne.
> Jeżeli nie: geometria analityczna, przecięcie prostych. Patologie wyjdą
> jako 0==0 lub 0==1. Oczywiście sprawdzasz czy przecięcie jest punktem
> każdego odcinka. Trywialne.
Kwadraty z brzegami czy bez? Czy też z lewymi górnymi bez dolnych
prawych? Czy będzie zaklasyfikowane w przypadku braku brzegu jednego a
istnienia brzegu drugiego?
-
5. Data: 2014-12-10 09:34:27
Temat: Re: Dobra reguła przecinania się odcinków - potrzeba szybko
Od: slawek <f...@f...com>
On Tue, 09 Dec 2014 07:29:02 +0100, Borneq
<b...@a...hidden.pl> wrote:
> Kwadraty z brzegami czy bez? Czy też z lewymi górnymi bez dolnych
Przypominam: jeżeli chcesz gotowca to zaczynasz "jestem Agnieszka,
nasz nauczyciel...". To ZAWSZE działa. Taki mamy tu zwyczaj.
Sprawdź co u ciebie jest odcinkiem. Tzn. Prawdziwy Odcinek ma oba
końce. Jeżeli uda ci się z tego wydedukować if w czasie miesiąca, to
IQ masz powyżej 80. Jeżeli nie chcesz ryzykować (bo a nuż) to...
Google. Jeżeli nie wiesz jak użyć Google...
-
6. Data: 2014-12-10 09:59:07
Temat: Re: Dobra reguła przecinania się odcinków - potrzeba szybko
Od: Borneq <b...@a...hidden.pl>
W dniu 2014-12-10 o 09:34, slawek pisze:
> Sprawdź co u ciebie jest odcinkiem. Tzn. Prawdziwy Odcinek ma oba końce.
Gdy odcinek ma dwa końce, to zawsze znajdzie się przecięcie krawędzi i
oraz i+1 w wielokącie.
-
7. Data: 2014-12-10 12:17:15
Temat: Re: Dobra reguła przecinania się odcinków - potrzeba szybko
Od: slawek <f...@f...com>
On Wed, 10 Dec 2014 09:59:07 +0100, Borneq
<b...@a...hidden.pl> wrote:
> Gdy odcinek ma dwa końce, to zawsze znajdzie się przecięcie
krawędzi i
> oraz i+1 w wielokącie.
Wstrząsające!
-
8. Data: 2014-12-10 12:28:34
Temat: Re: Dobra reguła przecinania się odcinków - potrzeba szybko
Od: Piotr Chamera <p...@p...onet.pl>
W dniu 2014-12-10 09:59, Borneq pisze:
> W dniu 2014-12-10 o 09:34, slawek pisze:
>> Sprawdź co u ciebie jest odcinkiem. Tzn. Prawdziwy Odcinek ma oba końce.
>
> Gdy odcinek ma dwa końce, to zawsze znajdzie się przecięcie krawędzi i
> oraz i+1 w wielokącie.
Zauważ, że sąsiednie boki wielokąta z definicji _nie mogą_ się
przecinać, a jeśli nie sąsiadują ze sobą, a mają wspólny koniec,
to masz przecięcie w punkcie ich styku (albo przynajmniej przewężenie
,,do 0").
-
9. Data: 2014-12-10 15:26:24
Temat: Re: Dobra reguła przecinania się odcinków - potrzeba szybko
Od: Borneq <b...@a...hidden.pl>
W dniu 2014-12-10 o 12:28, Piotr Chamera pisze:
> Zauważ, że sąsiednie boki wielokąta z definicji _nie mogą_ się
> przecinać, a jeśli nie sąsiadują ze sobą, a mają wspólny koniec,
> to masz przecięcie w punkcie ich styku (albo przynajmniej przewężenie
> ,,do 0").
No dobra, przy badaniu samoprzecięć mogę dać dodatkowy warunek aby nie
sprawdzać z sąsiednim bokiem, ale co przy badaniu przecięcia wielokąta A
z wielokątem B? Wierzchołek jednego dotyka krawędzi drugiego; gdy
krawędź ma dwa końce, policzymy przecięcie podwójnie. Chyba nie ma
lepszego sposobu niż krawędzie z jednym końcem (przy czym te długości
zero nie są wcale liczone).
-
10. Data: 2014-12-11 19:09:58
Temat: Re: Dobra reguła przecinania się odcinków - potrzeba szybko
Od: Borneq <b...@a...hidden.pl>
W dniu 2014-12-09 o 07:18, slawek pisze:
> Sprawdzasz, czy kwadraty których przekątnymi są te odcinki są rozłączne.
To nie zawsze działa. Może być duży kwadrat, w nim mały, nie są
rozłączne a przekątne się nie przecinają