por carlostex » Mié Ago 24, 2011 2:34 am
Ya veo lo que quieres hacer, y es el mismo algoritmo que te mostró Hugo, pero en tu aplicación tiene un inconveniente que se prueba 2 veces cada colisión veo que tienes una condición donde se prueba quien es mayor, eso causara que aun que se pruebe dos veces cada rectángulo solo se disminuirá una ves la velocidad, y funciona pero se puede hacer mejor, en el segundo for pon que el indice comience con el índice del for anterior así:
for(int p = 0;p< MAX-1;p++){
for(int i = p+1;i<MAX;i++){
}
}
esto causara que si tienes una lista
l=[1,2,3,4]
se comprobara así:
1-2
1-3
1-4
2-3
2-4
3-4
Esto produce menos comparaciones y que el algoritmo sea mas rápido.
El conocimiento de unos es conocimiento de todos.