|
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.
|