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