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:50:57 +0100
    Organization: Sileman news server
    Lines: 82
    Message-ID: <jcv22e$eh8$1@kushnir.sileman>
    References: <jcs40l$bt7$1@kushnir.sileman> <jcsrli$df3$1@node2.news.atman.pl>
    <jcti9i$p89$2@kushnir.sileman> <jcuum4$il1$1@node2.news.atman.pl>
    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 1324551054 14888 93.176.238.238 (22 Dec 2011 10:50:54 GMT)
    X-Complaints-To: u...@k...sileman
    NNTP-Posting-Date: Thu, 22 Dec 2011 10:50:54 +0000 (UTC)
    User-Agent: KNode/4.8 beta2
    Xref: news-archive.icm.edu.pl pl.comp.programming:194477
    [ ukryj nagłówki ]

    bartekltg wrote:

    > W dniu 2011-12-21 22:15, Kicer pisze:
    >
    >
    >>> Dwa równania na przesunięcie (x i y), wybierasz
    >>> to z mniejszym wynikiem.
    >>
    >> mogę prosić ciutkę jaśniej? jak wyznaczam te dwa równania?
    >
    >
    > Kurde. Brać się do matematyki a nie do programowania!

    (4, 9)
    +--+
    | | prostokąt A; środek to punkt 2, 7; Ha = 4; Wa = 4
    | |
    +--+
    (0, 5) (6,4)
    ++
    ||
    || prostokąt B; środek to punkt 5, 2; Hb = 4; Wb = 2
    ++
    (4,0)

    >
    > W = suma szerokości / 2
    > H = suma wysokości /2

    W = (Wa + Wb) / 2 = 3
    H = (Ha + Hb) / 2 = 4;

    >
    > Wektor od prostokąta A do B
    > [ X_B - X_A ; Y_B - Y_A ]

    jak napisales w poście niżej, chodzi o środki, więc:

    [ 5 - 2; 2 - 7] = [3; -5]

    >
    > I teraz szukasz takiego t, aby była kolizja,
    > czyli albo
    >
    > abs(X_B - X_A) * (1-t) = W
    >
    > albo
    >
    > abs( Y_B - Y_A ) (1-t) = H

    abs(X_B - X_A) == 3;
    t = (3 - W)/3 = 0

    abs(Y_B - Y_A) == 5;
    t = (5 - H)/5 = 1/5

    >
    >
    > Z obu równań wyznaczasz t (zamieniasz wzorek na t = ...,
    > nie trzeba rozwiązywać tego numerycznie;)) i bierzesz
    > to mniejsze. Jeśli początkowo prostokąty były
    > rozłączne, to t będzie w przedziale (0,1).
    >

    wygrywa zatem t = 0

    [3; -5] * 0 = [0; 0]

    wychodzi zatem, ze prostokątów nie trzeba przesuwać.

    Jesli wezmę drugie t, które wychodzi 1/5, to wygląda sensowniej, bo wektor
    ma postać:
    [-3/5; -1], co już by się zgadzało.

    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: