Obi 2007 Nivel1 Fase1 - Colisoes
Table of Contents
Autor da análise: Bruno Cebukin
Resumo
Solução
Resolvi o problema lendo as coordenas dos quatro pontos para
(q1.x, q1.y e q2.x, q2.y) - 1º retângulo
(p1.x, p1.y e p2.x, p2.y) - 2º retângulo
Havia intersecção entre os retângulos se o "x" do ponto de um dos retângulos estivesse entre os "x" dos pontos do outro retângulo e se o "y" do ponto de um dos retângulos estivesse entre os "y" dos pontos do outro retângulo.
if (p1.x >= q1.x && p1.x <= q2.x) x = 1; else if (q1.x >= p1.x && q1.x <= p2.x) x = 1; if (p1.y >= q1.y && p1.y <= q2.y) y = 1; else if (q1.y >= p1.y && q1.y <= p2.y) y = 1; if (x && y) /* existe intersecção */
Testes
Entrada
Saída
Enquete
Qualidade do enunciado
Dificuldade do problema
Problema interessante
page revision: 3, last edited: 24 Jun 2009 20:19
Discuta o problema
Resolvi o problema lendo as cordenas dos quarto pontos para
(q1.x, q1.y e q2.x, q2.y) - 1º retângulo
(p1.x, p1.y e p2.x, p2.y) - 2º retângulo
Havia intersecção entre os retângulos se o "x" do ponto de um dos retângulos estivesse entre os "x" dos pontos do outro retângulo e se o "y" do ponto de um dos retângulos estivesse entre os "y" dos pontos do outro retângulo.
if (p1.x >= q1.x && p1.x <= q2.x)
x = 1;
else if (q1.x >= p1.x && q1.x <= p2.x)
x = 1;
if (p1.y >= q1.y && p1.y <= q2.y)
y = 1;
else if (q1.y >= p1.y && q1.y <= p2.y)
y = 1;
if (x && y)
/* existe intersecção */
Bruno.
Leia algumas análise e vai entender como ela dever ser feita. Precisa fazer um resumo da história e demonstra uma solução (não escreva em primeira pessoa).