Kezdőoldal » Számítástechnika » Programozás » Hogyan lehet eldönteni 2...

Progizo kérdése:

Hogyan lehet eldönteni 2 téglalap alakú területről, hogy átfedőek-e?

Figyelt kérdés
Adott a címbéli kérdés, amit eddig úgy próbáltam megoldani, hogy ciklusokkal végigmentem az adott koordinátájú területek mindegyik képpontján, és ha talált egy közöset, akkor igaz lett. Ez viszont eléggé lelassította a programot, ezért az a kérdésem, hogy van-e erre valami egyszerű képlet és ha igen, akkor mi az?

2013. dec. 27. 14:46
 1/8 anonim ***** válasza:
csak a téglalapok 2-2 sarka kell, ebben benne van az a 4 koordináta, amiből ki tudod számolni
2013. dec. 27. 15:06
Hasznos számodra ez a válasz?
 2/8 A kérdező kommentje:
De az eléggé hosszú és többtagú kódsort jelent, mert ugye az sem mindegy, hogy melyik hol helyezkedik el a másikhoz képest. Akkor ez csak így oldható meg?
2013. dec. 27. 15:20
 3/8 anonim ***** válasza:

jól mondja az első


kérdező kicsit konkrétabban miből kell megállapítani hogy átfedőek e?


mert ha rendelkezésre áll pl a bal alsó sarka pozíciója meg a jobb felső sarka pozíciója és a két téglalap egyes oldalai csak párhuzamosak vagy merőlegesek egymásra akkor annyi amit az első írt. ha viszont van benne variálás akkor írd le részletesebben

2013. dec. 27. 15:44
Hasznos számodra ez a válasz?
 4/8 anonim ***** válasza:

Mind a 4-4 sarka kell a téglalapoknak (rajz: két egybevágó téglalap, egyik kicsit jobbra-fel csúsztatva).


Az ne érdekeljen hogy hány sor kód (szépen megírva sincs 10-nél több szerintem, függvénynek bőven jó), cserébe mérettől függően néhány nagyságrenddel gyorsabb (ráadásul O=1 bonyolultságú, amit ugye szeretünk).

2013. dec. 27. 15:56
Hasznos számodra ez a válasz?
 5/8 anonim ***** válasza:
ha nincsenek összevissza elforgatva egymáshoz képest elég 2 sarok téglalaponként, "(rajz: két egybevágó téglalap, egyik kicsit jobbra-fel csúsztatva)" attól a bal alsó sarka benne van a másik téglalap 2 átlós sarka közötti "intervallumban"
2013. dec. 27. 16:02
Hasznos számodra ez a válasz?
 6/8 anonim ***** válasza:

Előző, te ugratsz engem:D


Ha a bal alsó és jobb fölső adott (csak mert a standard fordítva van) akkor rajz: két egybevágó téglalap, az egyiket csúsztasd balra és felfele.

2013. dec. 27. 16:11
Hasznos számodra ez a válasz?
 7/8 A kérdező kommentje:

A bal felső sarkok X és Y koordinátája van meg, illetve a szélességük és magasságuk.

Ilyesféle kódot ötlöttem ki most reá:

if max(egyikx+egyiksz,masikx+masiksz)-min(egyikx,masikx)<egyiksz+masiksz and max(egyiky+egyikm,masiky+masikm)-min(egyiky,masiky)<egyikm+masikm

return true else return false

Úgy tűnik, hogy jó, de még fagyogat valamiért :-/

Egyébként egy útvonalkereső A* algoritmust írnék, és ahhoz kell egy tömbnél a szomszédos ütközésmentes tömbök, és akkor léphet ki a ciklusból, ha a legutóbbi útvonalrácscella átfedő azzal, ami tartalmazza a cel_x és cel_y koordinátákat.

2013. dec. 27. 16:12
 8/8 anonim ***** válasza:
tényleg igazad van wampa, viszont eszembe jutott azért elég 2 sarok mert abból már meghatározható a másik 2:D
2013. dec. 27. 16:27
Hasznos számodra ez a válasz?

Kapcsolódó kérdések:




Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!