Foros del Web » Programación para mayores de 30 ;) » Programación General »

como unir dos puntos con recta en C++

Estas en el tema de como unir dos puntos con recta en C++ en el foro de Programación General en Foros del Web. Alguien que sepa como unir puntos en el espacio con una linea recta. Con que libreria y como creo la función.? Gracias...
  #1 (permalink)  
Antiguo 17/11/2004, 15:30
 
Fecha de Ingreso: noviembre-2004
Mensajes: 3
Antigüedad: 19 años, 5 meses
Puntos: 0
como unir dos puntos con recta en C++

Alguien que sepa como unir puntos en el espacio con una linea recta.
Con que libreria y como creo la función.?
Gracias
  #2 (permalink)  
Antiguo 17/11/2004, 19:20
 
Fecha de Ingreso: noviembre-2003
Ubicación: Mexico
Mensajes: 1.081
Antigüedad: 20 años, 5 meses
Puntos: 7
en 2D o en 3D??
de todas formas, para ninguna necesitas alguna libreria.
Solo pura matematica (algebra /algebrea lineal)
  #3 (permalink)  
Antiguo 17/11/2004, 20:24
 
Fecha de Ingreso: noviembre-2004
Mensajes: 3
Antigüedad: 19 años, 5 meses
Puntos: 0
Mi codigo genera los puntos en forma aleatoria en colores,pero no se como hacer para unir estos puntos entre si por medio de lineas rectas en 2D. Y debe cerrarme el contorno con otro color.
El cierre del contorno lo puedo hacer con determinantes de acuerdo a la formula:
Giro=(((y2-y39)*x1)-((y1-y3)*x2))+((y1-y2)*x3)))

#include <stdio.h>
#include <conio.h>
#include <stdlib.h> //randomize


int main()
{
//PROGRAMA PRESENTACION
int c,f;
//lado superior del rectangulo
for(c=1;c<=80;c++){
gotoxy(c,1);
printf("*");
}

//lado izquierdo del rectangulo
for(f=1;f<=25;f++){
gotoxy(1,f);
printf("*");
}

gotoxy(20,12);
textcolor(2);
cprintf("PROGRAMA : PUNTOS ALEATORIOS-CIERRE DEL CONTORNO"); //

//lado derecho del rectangulo
for(f=1;f<=25;f++){
gotoxy(80,f);
printf("*");
}

//parte inferior del rectangulo
for(c=1;c<=80;c++){
gotoxy(c,25);
printf("*");
}

getch();

{

//PROGRAMA GENERA PUNTOS ALEATORIOS

//limpiar pantalla
clrscr();

//definir variables:
#define N 20 //numero de asteriscos *2 (x e y)
int i;
int tx[N],ty[N];

//escribir tabla:

randomize();


while (1)
{

for(i=0;i<N;i++)
{
textcolor(random (15));
tx[i]=random(70); //area aparecen los '*'
ty[i]=random(60); //area aparecen los '*'
gotoxy(tx[i],ty[i]);
cprintf("*");
}
getch();

//borramos tabla:
for(i=0;i<N;i++)
{
textcolor(random (15));

gotoxy(tx[i],ty[i]);
cprintf(" ");
}
for(i=0;i<=10;i++);
}

//finalizamos y escribimos fin de programa:
/*
clrscr();
gotoxy(10,10);
textcolor(6);

cprintf("Programa Terminado");

//finalizamos:
getch();
return 0;
*/
}
}

Por favor ayudenme compañeros
  #4 (permalink)  
Antiguo 18/11/2004, 20:32
Avatar de stock  
Fecha de Ingreso: junio-2004
Ubicación: Monterrey NL
Mensajes: 2.390
Antigüedad: 19 años, 10 meses
Puntos: 53
Estas usando modo texto, creo que te seria mas facil si trabajaras en modo grafico

pues en modo testo tendrias que usar caracteres y pues lasa lineas no quedarian muy rectas que digamos
  #5 (permalink)  
Antiguo 19/11/2004, 17:17
Avatar de Instru  
Fecha de Ingreso: noviembre-2002
Ubicación: Mexico
Mensajes: 2.751
Antigüedad: 21 años, 5 meses
Puntos: 52
Si, usa un modo grafico, y para unirlos solo saca las componentes en X y en Y de cada punto he intenta guiarlas.

saludos
  #6 (permalink)  
Antiguo 20/11/2004, 10:50
 
Fecha de Ingreso: noviembre-2003
Ubicación: Mexico
Mensajes: 1.081
Antigüedad: 20 años, 5 meses
Puntos: 7
saca el vector entre los puntos.
v.x = p1.x-p2.x
v.y = p1.y - p2.y

y dependiendo de cuanto sea la magnitud del vector, que sea el numero de veces que recorre algo ese punto.
  #7 (permalink)  
Antiguo 21/11/2004, 14:32
Ex Colaborador
 
Fecha de Ingreso: junio-2002
Mensajes: 9.091
Antigüedad: 21 años, 10 meses
Puntos: 16
Hola,

Sea en modo grafico o en texto, tiene el mismo problema: simular una liena continua con puntos discretos. El modo grafico solo mejora que el punto es mas pequeño.

Creo recordar que el truco esta en obtener la pendiente de la recta para determinar cual es el siguiente punto a pintar. Mira en http://freespace.virgin.net/hugo.eli...cs/x_lines.htm o http://en.wikipedia.org/wiki/Bresenh...line_algorithm sobre el algoritmo de bresenham.

Saludos.
__________________
Josemi

Aprendiz de mucho, maestro de poco.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta

SíEste tema le ha gustado a 1 personas (incluyéndote)




La zona horaria es GMT -6. Ahora son las 17:18.