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!nf1.ipartners.pl!ipartners.pl!news.sile
    man.pl!not-for-mail
    From: Kicer <...@...c>
    Newsgroups: pl.comp.programming
    Subject: Re: kolizja prostokątów
    Date: Thu, 22 Dec 2011 11:05:24 +0100
    Organization: Sileman news server
    Lines: 71
    Message-ID: <jcuvd1$2eo$1@kushnir.sileman>
    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> <s...@j...net>
    NNTP-Posting-Host: host-5db0eeee.sileman.net.pl
    Mime-Version: 1.0
    Content-Type: text/plain; charset="ISO-8859-2"
    Content-Transfer-Encoding: 8Bit
    X-Trace: kushnir.sileman 1324548321 2520 93.176.238.238 (22 Dec 2011 10:05:21 GMT)
    X-Complaints-To: u...@k...sileman
    NNTP-Posting-Date: Thu, 22 Dec 2011 10:05:21 +0000 (UTC)
    User-Agent: KNode/4.8 beta2
    Xref: news-archive.icm.edu.pl pl.comp.programming:194464
    [ ukryj nagłówki ]

    Stachu 'Dozzie' K. wrote:

    > 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ść.

    nie ;) przesuwając dolny po prostej przechodzącej przez środki prostokątów,
    powinien się on przesunąć lekko w lewo.

    >
    >>> 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.

    no dobra, pierwszy wyszedł mi 0 to drugi wyjdzie ile? 0?:>

    >
    >> 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.
    >

    tego narazie nie skomentuję, bo ciągle są braki w punktach powyżej ;)

    pozdrawiam

    --
    Michał Walenciak
    gmail.com kicer86
    http://kicer.sileman.net.pl
    gg: 3729519

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: