Sprawdzenie czy jeden obrazek PNG nachodzi na drugi.

Odpowiedz Nowy wątek
2011-09-02 13:33
0

Witam was,

Mam taki problem. W grze, którą aktualnie piszę potrzebuję sprawdzić, czy jeden obiekt nachodzi na drugi i w takim przypadku zaimplementować ich interakcję. Jest w tym tylko jeden problem - obrazki posiadają przeźroczystość co oznacza, że nie można tutaj zastosować prostego nakładania się prostokątów. Wie ktoś jak do czegoś takiego dość, lub jakie zapytanie zadać Google bo ja nie mam pomysłu?

Będę wdzięczny za pomoc :)

Pozostało 580 znaków

2011-09-02 13:40
0

Najpierw składasz prostokąty, jak nachodzą to teraz dla obszaru jaki się nakłada możesz policzyć czy dla jakiegoś pixela nakładają się dwa pixele różne od przezroczystości.

Pozostało 580 znaków

2011-09-02 13:53
0

W takim razie czy jest jakaś funkcja, która sprawdza czy prostokąty obrazków na siebie nachodzą? Wiem, że jest możliwość napisania tego, ale szkoda pisać coś co już napisano ;)

Pozostało 580 znaków

2011-09-02 14:06
0

Na pewno klasa Bitmap, czy Image nie posiada czegoś takiego, bo do tego potrzebne byłoby ich położenie. Natomiast klasa Rectangle zawiera metodę Contains. Z resztą napisanie takiej funkcji jest, zdaje się, dość trywialne.


Some people see things as they are, and say "why?". I dream things that never were and say "why not?".
Czy to nie jest czasem jeden if z trzema koniunkcjami? - somekind 2011-09-02 18:17
Owszem, jest: return (A.X + A.Width >= B.X && A.X <= B.X + B.Width && A.Y + A.Height >= B.Y && A.Y <= B.Y + B.Height); - Wronq 2011-09-02 19:31
A po chwili kombinowania: return Math.Min((A.X + A.Width - B.X) (B.X + B.Width - A.X), (A.Y + A.Height - B.Y) (B.Y + B.Height - A.Y)) >= 0; return Math.Min((A.Right - B.X) (B.Right - A.X), (A.Bottom - B.Y) (B.Bottom - A.Y)) >= 0; (wersja dla klasy Rectangle) - Wronq 2011-09-02 19:43

Pozostało 580 znaków

Odpowiedz
Liczba odpowiedzi na stronę

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0