Foro de elhacker.net

Programación => Programación General => Mensaje iniciado por: Tachikomaia en 5 Mayo 2026, 01:34 am



Título: Hacer una línea, pintar los puntos intermedios de 2 puntos.
Publicado por: Tachikomaia en 5 Mayo 2026, 01:34 am
No estoy pudiendo resolverlo.

Véase la imagen.
(https://i.ibb.co/F4ZBvmY7/Relaciones-XY.png)

Si se quiere unir el punto o casillero A con el 2, como está marcado con verde, puede hacerse algo así:
XDelCasilleroaPintar = 0
Repetir
   YDelCasilleroaPintar = XDelCasilleroaPintar
   Pintar casillero ubicado en XDelCasilleroaPintar, YDelCasilleroaPintar
   XDelCasilleroaPintar++
Mientras XDelCasilleroaPintar<3

Columnas (X) y filas (Y) fue contado desde 0.

Hay una relación entre Columna y Fila, una muy simple.

Si en cambio queremos unir el casillero B con el 2, debemos averiguar la relación entre fila y columna, algo así:
Fila y Columna
0 y 1
2 y 2
Nótese que estoy usando fila de base en vez de columna porque incluye más puntos en posiciones enteras.
En fin, sé que debo hacer esto:
YDelCasilleroaPintar = 0
Repetir
   XDelCasilleroaPintar = 1+YDelCasilleroaPintar/2
   Pintar casillero ubicado en XDelCasilleroaPintar, YDelCasilleroaPintar
   YDelCasilleroaPintar++
Mientras YDelCasilleroaPintar<=YDelCasillero2

Pero necesito la fórmula para obtener todos esos números.

¿Por qué ese 1?
Asumo que porque el YDeB-XDeB=1. O sea el Y del punto B es 1 y el X es 0. Está en la columna 1, fila 0.

¿Por qué +YDelCasilleroaPintar/2?

Además hay otros casos en que cuando una cosa (fila o columna, pintándose) aumenta la otra disminuye, como que son reglas de 3 negativas, no sé.

En definitiva el programa debe poder señalar 2 puntos al azar y determinar cuales intermedios debe pintar.

Son casilleros en realidad, pero es más o menos lo mismo.

Cuando un casillero tenga una ubicación decimal, se la redondería. No hay una respuesta correcta sobre hacia dónde cuando sea .5, ni importa en mi caso.


Título: Re: Hacer una línea, pintar los puntos intermedios de 2 puntos.
Publicado por: Mr.Byte en 6 Mayo 2026, 08:50 am
Quizas tendrias de adaptar el algoritmo de Bresenham


Título: Re: Hacer una línea, pintar los puntos intermedios de 2 puntos.
Publicado por: Tachikomaia en 6 Mayo 2026, 20:05 pm
De momento se me hizo complicado de entender, como mucho en Wikipedia, seguiré intentando.