Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [js] Zabawy z canvas: runda 2
230005
post
Post #1





Grupa: Zarejestrowani
Postów: 316
Pomógł: 36
Dołączył: 2.04.2008

Ostrzeżenie: (0%)
-----


Czy ma ktoś jakiś pomysł na generyczną metodę wykrywania czy dwa obiekty na canvas się stykają? Jak na razie to do głowy przyszło mi tylko jedno raczej niezadowalające rozwiązanie - sprawdzanie wzdłuż krawędzi, które zawodzi jednak kiedy obiekt nie jest prostokątem - np. ma kształt litery "z". Robię to tak:

[JAVASCRIPT] pobierz, plaintext
  1.  
  2. try {
  3. var imgd = this.ctx.getImageData(this.getX() - 1, this.getY(), 1, this.getHeight());
  4. var dat = imgd.data;
  5. }
  6. catch(err) {}
  7.  
  8. if(dat) {
  9. for(var i = 0; i < dat.length; ++i) {
  10. if(dat[i] != 0)
  11. return false;
  12. }
  13. }
  14.  
[JAVASCRIPT] pobierz, plaintext


Chciałbym uniknąć tworzenia kształtów z kolejnych prostokątów i testowania każdego z tych składowych, czy nie styka się z innym. Każda rada mile widziana (IMG:style_emoticons/default/smile.gif) .

Ten post edytował 230005 25.05.2010, 23:26:21
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
SHiP
post
Post #2





Grupa: Zarejestrowani
Postów: 697
Pomógł: 47
Dołączył: 19.12.2003
Skąd: Lublin

Ostrzeżenie: (0%)
-----


Nie wiem do jakich celów tego potrzebujesz. Najlepiej to rozwiązać od strony matematycznej(tj. nie sprawdzać kształtów już wyświetlonych ale analizować ich wzory matematyczne). Zawsze możesz również sprawdzać piksel po pikselu oba kształty.

Ten post edytował SHiP 26.05.2010, 11:30:38
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 4.10.2025 - 23:15