Documentos de Académico
Documentos de Profesional
Documentos de Cultura
html
Para este programa empieza diseñamos un formulario con los siguientes objetos:
Empezaremos Trazando dos líneas, que se convertirán en los ejes cartesianos, en el componente Canvas del objeto Image tal como
se aprecia en el siguiente Gráfico.
1 de 6 12/04/2021 5:36
Bienvenidos al Curso de Programación de Builder C++ http://www.geocities.ws/builderx2001/cap2.html
COORDENADAS CARTESIANAS
A continuación modificaremos la función anterior para graficar una función en coordenadas cartesianas como se muestra en la
siguiente figura:
Para ello se emplea el siguiente código: (si no funciona no se olviden de incluir en el encabezado del programa la librería math.h)
2 de 6 12/04/2021 5:36
Bienvenidos al Curso de Programación de Builder C++ http://www.geocities.ws/builderx2001/cap2.html
Ustedes pueden hacer las modificaciones que consideren convenientes para mostrar estos gráficos de una mejor manera, ya sea
cambiando el tipo de gráfico por ejemplo y=x*sin(x), etc.
COORDENADAS POLARES
A continuación mostraremos la famosa cardioide, dibujada en coordenadas polares y también el código que nos permite realizar
esto:
3 de 6 12/04/2021 5:36
Bienvenidos al Curso de Programación de Builder C++ http://www.geocities.ws/builderx2001/cap2.html
Los gráficos en tres dimensiones son algo muy interesante, a continuación se muestra la variación del formulario que contiene el
graficador en 3D, se deben diseñar 4 objetos Image como se muestra en la figura y también se debe diseñar 2 objetos ScrollBar uno
controlará el ángulo de elevación y el otro controlará el ángulo de giro, tres de los controles image nos mostrarán ejes definidos y el
cuarto girará de acuerdo a los ángulos que les proporcionemos.
Seguidamente describiremos lo que hacen los botones, ya conocemos lo que realizan los dos primeros botones, el tercer boton (3D
Cartesiano) contiene el siguiente código que se muestra a continuación:
4 de 6 12/04/2021 5:36
Bienvenidos al Curso de Programación de Builder C++ http://www.geocities.ws/builderx2001/cap2.html
//Traza el eje Y
Image1->Canvas->MoveTo(Maxx/2,0);
Image1->Canvas->LineTo(Maxx/2,Maxy);
//Declarando funciones que van a ser utilizadas
float x,y,z,var=0.1,xini=-10,xfin=10,posx,posy;
//Graficando la función en si
for(x=xini/3;x<xfin/3;x+=var)
{ for(z=xini/3;z<xfin/3;z+=var)
{ y=f(x,z); //Llamada a una función ya definida más arriba
posx=x*Maxx/(xfin-xini);
posy=y*Maxx/(xfin-xini);
Image1->Canvas->Pixels[Maxx/2+posx][Maxy/2-posy]=clRed;
posx=x*Maxx/(xfin-xini);
posy=z*Maxx/(xfin-xini);
Image2->Canvas->Pixels[Maxx/2+posx][Maxy/2-posy]=clRed;
posx=y*Maxx/(xfin-xini);
posy=z*Maxx/(xfin-xini);
Image3->Canvas->Pixels[Maxx/2+posx][Maxy/2-posy]=clRed;
}
}
}
Este Botón nos muestra los tres primeros objetos image que nos muestran los planos x-y, x-z, y-z.
El siguiente Botón (Para Girar) es el que muestra las figuras con el ángulo de Elevación y Giro correspondiente, cuyo código se
muestra a continuación:
float Elev=ScrollBar1->Position*(2*M_PI)/100;
float Giro=ScrollBar2->Position*(2*M_PI)/100;
float x,y,z,var=0.1,xini=-10,xfin=10,posx,posy,x2D,y2D;
for(x=xini/3;x<xfin/3;x+=var)
{ for(z=xini/3;z<xfin/3;z+=var)
{ y=f(x,z);
x2D= x*cos(Elev)-z*sin(Elev);
y2D=-x*sin(Elev)*sin(Giro)+y*cos(Giro)-z*cos(Elev)*sin(Giro);
posx=x2D*Maxx/(xfin-xini);
posy=y2D*Maxx/(xfin-xini);
Image4->Canvas->Pixels[Maxx/2+posx][Maxy/2-posy]=clRed;
}
}
}
función que debe ser declarada o definida antes de la implementación del Button3 y el Button4
NOTA: El estudiante deberá analizar el programa y hacer las variaciones necesarias para hacer girar otro
tipo de objetos gráficos como Cubos u otros objetos en 3D, programa que debe ser presentado el Día
martes 10 de julio del 2001 en Diskette.
Ejemplo:
5 de 6 12/04/2021 5:36
Bienvenidos al Curso de Programación de Builder C++ http://www.geocities.ws/builderx2001/cap2.html
6 de 6 12/04/2021 5:36