me gustaría ir como esto:
Tome la punta del triángulo (el que tiene la más alta coordenada Y) hacia arriba. Hay dos "pendientes" que comienzan en ese punto. No es la solución general, pero para una visualización fácil, piense en una de las dos "yendo hacia la izquierda" (disminuyendo las coordenadas x) y la otra "yendo hacia la derecha".
Desde esas dos pendientes y cualquier coordenada Y dada menor que el punto más alto, debe poder calcular el número de puntos enteros que aparecen dentro de los límites establecidos por las pendientes. Al iterar sobre las coordenadas Y decrecientes, sume todos esos puntos.
Pare cuando las coordenadas Y decrecientes lleguen al segundo punto más alto del triángulo.
Has contado todos los puntos "por encima del segundo punto más alto", y ahora te queda el problema de "contar todos los puntos dentro de un triángulo (¡mucho más pequeño!), Del cual sabes que es el lado superior es paralelo al eje X.
Repita el mismo procedimiento, pero ahora con tomar el "punto más a la izquierda" en lugar del "más alto", y con el procedimiento "aumentando x", en lugar de "disminuyendo y".
Después de eso, te queda el problema de contar todos los puntos enteros dentro de un triángulo, una vez más mucho más pequeño, del cual sabes que su lado superior es paralelo al eje X, y su lado izquierdo es paralelo al Y -eje.
Sigue repitiendo (recurriendo), hasta que no cuentes ningún punto en el triángulo que te queda.
(¿He hecho ahora su tarea para usted?)
¿Qué hay de puntos en una de las bordes? ¿Son los bordes exclusivos o inclusivos? – Chet
No entiendo la pregunta, ¿me puede dar un poco más de detalles? – samoz
@Chet: supuestamente incluido. Tu pregunta solo tiene sentido si hay un borde de ancho definido alrededor del triángulo. En este caso, es una línea sin ancho, por lo que siempre sería inclusivo. Ahora, si hay un borde con cualquier ancho, entonces esta pregunta retiene el agua. – Eric