Foros del Web » Programación » C/C++ »

Programa en turbo C sacar area y dibujar figura

Estas en el tema de Programa en turbo C sacar area y dibujar figura en el foro de C/C++ en Foros del Web. Buenas mi gente tengo un problema en C estoy haciendo un programa que le pida al usuario 4 puntos o coordenadas y al hacerlo imprimir ...
  #1 (permalink)  
Antiguo 19/05/2008, 15:08
 
Fecha de Ingreso: mayo-2008
Mensajes: 20
Antigüedad: 6 años, 4 meses
Puntos: 0
Programa en turbo C sacar area y dibujar figura

Buenas mi gente tengo un problema en C estoy haciendo un programa que le pida al usuario 4 puntos o coordenadas y al hacerlo imprimir la figura ya sea recta, cuadrado, rombo, rectangulo, romboide, trapecio, triangulo y trapezoide.

He adelantado algo el codigo esta noche. El programa trata de: Pide 4 coordenadas al usuario y usando esos 4 el programa calcula que area sale y dibuja en pantalla la figura ya sea recta de 2 puntos, cuadrado de 4 puntos, triangulo de 3 y asi sucesivamente como ven en mi codigo trate de usar pendiente y asi el programa me dice que figura es el punto como uso graphics para que dibuje la figura cuando el programa saka el area? Gracias

Aqui esta el codigo:

Código:
#include <stdio.h>
#include <math.h>
#include <conio.h>
main()
{
float x1,x2,x3,x4,y1,y2,y3,y4,m12,m23,m34,m41,d12,d23,d34,d41,dt,mi23,a,d1,d2,s,d13,d24,d31,d42;
clrscr();textcolor(9);textbackground(12);clrscr();
printf("Introduzca las coordenadas del:\nPrimer punto:\nX=");
scanf("%f",&x1);
printf("Y=");
scanf("%f",&y1);
printf("Segundo punto \n X=");
scanf("%f",&x2);
printf("Y=");
scanf("%f",&y2);
printf("Tercer punto \n X=");
scanf("%f",&x3);
printf("Y=");
scanf("%f",&y3);
printf("Cuarto punto \n X=");
scanf("%f",&x4);
printf("Y=");
scanf("%f",&y4);
m12=(y2-y1)/(x2-x1);
m23=(y3-y2)/(x3-x2);
m34=(y4-y3)/(x4-x3);
m41=(y1-y4)/(x1-x4);
d12=sqrt(pow(y2-y1,2)+pow(x2-x1,2));
d23=sqrt(pow(y3-y2,2)+pow(x3-x2,2));
d34=sqrt(pow(y4-y3,2)+pow(x4-x3,2));
d41=sqrt(pow(y1-y4,2)+pow(x1-x4,2));
mi23=-1*(1/(m23));
if(m12==m23&&m12==m34&&m12==m41)
{
printf("Usted ha introducido las coordenadas de una recta cuya longitud es %f",d41);
}
else
if(m12==m34&&m23==m41&&d12==d23&&m12==mi23)
{
a=pow(d12,2);
printf("Usted a introducido las coordenadas de un cuadrado cuya area es %f",a);
}
else
if((m12==m34&&m23==m41)&&(d12==d23))
{
d1=sqrt(pow(y3-y1,2)+pow(x3-x1,2));
d2=sqrt(pow(y4-y2,2)+pow(x4-x2,2));
a=(d1*d2)/2;
printf("Usted a introducido las coordenadas de un rombo cuya area es %f",a);
}
else
if((m12==m34&&m23==m41)&&(d12==d34)&&(m12==mi23))
{
a=d12*d23;
printf("Usted a introducido las coordenadas de un rectangulo cuya area es %f",a);
}
else
if((m12==m34&&m23==m41)&&(d12==d34))
{
d1=sqrt(pow(y3-y1,2)+pow(x3-x1,2));
d2=sqrt(pow(y4-y2,2)+pow(x4-x2,2));
a=(d1*d2)/2;
printf("Usted a introducido las coordenadas de un romboide cuya area es %f",a);
}
else
if(m12==m34||m23==m41)
{
a=0;
printf("Usted a introducido las coordenadas de un trapecio cuya area es %f",a);
}
else
if(m12==m23)
{
d13=sqrt(pow(y3-y1,2)+pow(x3-x1,2));
s=(d13+d34+d41)/2;
a=sqrt(s*(s-d13)*(s-d34)*(s-d41));
printf("Usted a introducido las coordenadas de un triangulo cuya area es %f",a);
}
else
if(m23==m34)
{
d24=sqrt(pow(y4-y2,2)+pow(x4-x2,2));
s=(d24+d12+d41)/2;
a=sqrt(s*(s-d24)*(s-d12)*(s-d41));
printf("Usted a introducido las coordenadas de un triangulo cuya area es %f",a);
}
else
if(m34==m41)
{
d31=sqrt(pow(y1-y3,2)+pow(x1-x3,2));
s=(d31+d12+d23)/2;
a=sqrt(s*(s-d31)*(s-d12)*(s-d23));
printf("Usted a introducido las coordenadas de un triangulo cuya area es %f",a);
}
else
if(m41==m12)
{
d42=sqrt(pow(y2-y4,2)+pow(x2-x4,2));
s=(d42+d23+d34)/2;
a=sqrt(s*(s-d42)*(s-d23)*(s-d34));
printf("Usted a introducido las coordenadas de un triangulo cuya area es %f",a);
}
else
{
a=0;
printf("Usted a introducido las coordenadas de un trapezoide cuya area es %f",a);
}
getch();
}
  #2 (permalink)  
Antiguo 20/05/2008, 10:34
Avatar de _Lucifer_  
Fecha de Ingreso: junio-2006
Mensajes: 1.601
Antigüedad: 8 años, 3 meses
Puntos: 19
Respuesta: Programa en turbo C sacar area y dibujar figura

En general debes determinar los puntos máximos y mínimos en ambos ejes coordenados para que la figura no se salga de la superficie de dibujo que puede ser toda la pantalla o un recuadro de esta para que tengas espacio para mostrar algunos resultados.

Una vez que tienes los máximos y mínimos debes escalar los demas puntos para que entren en el área de dibujo usando algo así:

punto_pantalla_x=min_sup_dibujo + (ancho_sup_dibujo)*coor_x/max_x;

Paya el Y es igual, pero con el alto...además debes tomar en cuenta que el eje Y positivo está hacia abajo en la pantalla.

Saludos
__________________
Si crees que no tiene sentido, etonces probablemente lo tenga... :arriba:
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 00:21.
SEO by vBSEO 3.3.2