Voglio verificare se una linea (o qualsiasi punto di una linea) si trova all'interno di un rettangolo o interseca un rettangolo.Come verificare se un punto (o parte) di una linea si trova all'interno o tocca un rettangolo
Ho (x0, y0) e (x1, y1) come punti iniziali e finali di una linea. Inoltre, (ax, ay) e (BX, da) come i punti alto a sinistra e in basso a destra di un rettangolo
Per esempio,
____________
| |
---|----- | Result: true
| |
|____________|
/
_/__________
|/ |
/ | Result: true
/| |
|____________|
____________
| |
| -------- | Result: true
| |
|____________| ---------- Result: false
Qualcuno può suggerire come fare questo? Non voglio sapere che punto è, voglio solo sapere se è lì o no.
Grazie mille per l'aiuto
+1 per chiara arte ASCII :) – alex
Un veloce Google per "Cohen Sutherland" dovrebbe iniziare nella giusta direzione. –
Considera ogni spigolo come se fosse un proprio segmento di linea. Quindi è solo questione di determinare l'intersezione del segmento di linea * e * il caso in cui è interamente contenuta. Naturalmente, questa è solo una rapida osservazione e probabilmente non il modo * ideale * per risolvere questo tipo di intersezione (è anche un incrocio molto comune - sarei davvero sorpreso se questa è una domanda originale ;-) –