Determinar si dos rectángulos se superponen entre sí?
Estoy tratando de escribir un programa C++ que tome las siguientes entradas del usuario para construir rectángulos (entre 2 y 5): height, width, x-pos, y-pos. Todos estos rectángulos existirán paralelos a los ejes x e y, es decir, todos sus bordes tendrán pendientes de 0 o infinito.
He tratado de implementar lo que se menciona en esta pregunta, pero no estoy teniendo mucha suerte.
Mi implementación actual hace lo siguiente:
// Gets all the vertices for Rectangle 1 and stores them in an array -> arrRect1
// point 1 x: arrRect1[0], point 1 y: arrRect1[1] and so on...
// Gets all the vertices for Rectangle 2 and stores them in an array -> arrRect2
// rotated edge of point a, rect 1
int rot_x, rot_y;
rot_x = -arrRect1[3];
rot_y = arrRect1[2];
// point on rotated edge
int pnt_x, pnt_y;
pnt_x = arrRect1[2];
pnt_y = arrRect1[3];
// test point, a from rect 2
int tst_x, tst_y;
tst_x = arrRect2[0];
tst_y = arrRect2[1];
int value;
value = (rot_x * (tst_x - pnt_x)) + (rot_y * (tst_y - pnt_y));
cout << "Value: " << value;
Sin embargo estoy no estoy muy seguro de si (a) he implementado correctamente el algoritmo al que he vinculado, o si lo hice exactamente cómo interpretar esto?
Alguna sugerencia?
Warning: Undefined property: agent_blog_content::$date_asked in /var/www/agent_etc/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 32
Warning: Undefined property: agent_blog_content::$count_answers in /var/www/agent_etc/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 52