eGospodarka.pl
eGospodarka.pl poleca

eGospodarka.plGrupypl.comp.programmingkolizja prostokątówRe: kolizja prostokątów
  • Path: news-archive.icm.edu.pl!news.icm.edu.pl!news.nask.pl!news.nask.org.pl!goblin2!g
    oblin.stu.neva.ru!aioe.org!.POSTED!not-for-mail
    From: "Stachu 'Dozzie' K." <d...@g...eat.some.screws.spammer.invalid>
    Newsgroups: pl.comp.programming
    Subject: Re: kolizja prostokątów
    Date: Thu, 22 Dec 2011 09:12:21 +0000 (UTC)
    Organization: Aioe.org NNTP Server
    Lines: 53
    Message-ID: <s...@j...net>
    References: <jcs40l$bt7$1@kushnir.sileman> <jcs55a$o1h$2@inews.gazeta.pl>
    <jcti3f$p89$1@kushnir.sileman> <s...@j...net>
    <jcupv2$563$1@kushnir.sileman>
    NNTP-Posting-Host: 32kR2H3mw0v3HL1sSnS9/A.user.speranza.aioe.org
    Mime-Version: 1.0
    Content-Type: text/plain; charset=iso-8859-2
    Content-Transfer-Encoding: 8bit
    X-Complaints-To: a...@a...org
    User-Agent: slrn/pre0.9.9-111 (Linux)
    X-Notice: Filtered by postfilter v. 0.8.2
    Xref: news-archive.icm.edu.pl pl.comp.programming:194450
    [ ukryj nagłówki ]

    On 2011-12-22, Kicer <...@...c> wrote:
    > niechę będzie że mam:
    >
    > +---+
    > | |
    > | |
    > | |
    > | |
    > | |
    > +---+
    >
    > +-----------------+
    > | |
    > +-----------------+

    >> 3. Upewniasz się, że xA1 < xB1.
    >> Chodzi o to, żeby wiedzieć, który prostokąt jest lewy, a który prawy.
    >
    > ten na dole jest prawy
    >
    >> 4. Jeśli to prawy prostokąt jest przesuwany, liczysz wektor przesunięcia
    >> równoległego do osi x między xA2 i xB1. Jeśli lewy prostokąt jest
    >> przesuwany, wektor ma przeciwny zwrot.
    >
    > no to wyszedł wektor o długości 0, bo odlegość na osi odciętych (x) między
    > prawym bokiem górnego a lewym bokiem dolnego == 0.

    Słusznie. I tyle, jak rozumiem, powinien wyjść.

    >> 5. Obliczasz wektor przesunięcia wzdłuż osi y. Może być za pomocą
    >> proporcji. Możesz nawet sprawdzić, czy udało się tak przesunąć
    >> prostokąt, żeby dowolny bok poziomy jednego prostokąta znajdował się
    >> między bokami drugiego prostokąta (wystarczą dwie proste alternatywy).
    >
    > tu przyznam, że nie do konca rozumiem. Z proporcji miedzy czym a czym?

    Elementarna planimetria. Przesuwasz wzdłuż prostej przechodzącej przez
    środki, czyli o dwa wektory (równoległe do osi) składające się na wektor
    łączący środki prostokątów albo coś proporcjonalnego. Jeśli masz
    wyliczony wektor przesunięcia wzdłuż jednej osi, drugi się wylicza
    prosto.

    > Poświęciłem naprawdę sporo czasu na rozwiązanie tego problemu i uwierz mi,
    > wszelkie algorytmy wymyślane "od ręki" mają jakieś błędy dla wymyślnych
    > przypadków.

    Jeśli wystarczy ci, że dowolne boki się zetkną, to możesz policzyć dwa
    warianty i sprawdzić, przy którym prostokąty się rzeczywiście zetkną.
    Algorytm ten sam. Chyba że wynajdziesz inny problem.

    --
    Secunia non olet.
    Stanislaw Klekot

Podziel się

Poleć ten post znajomemu poleć

Wydrukuj ten post drukuj


Następne wpisy z tego wątku

Najnowsze wątki z tej grupy


Najnowsze wątki

Szukaj w grupach

Eksperci egospodarka.pl

1 1 1

Wpisz nazwę miasta, dla którego chcesz znaleźć jednostkę ZUS.

Wzory dokumentów

Bezpłatne wzory dokumentów i formularzy.
Wyszukaj i pobierz za darmo: