Este documento presenta la función bar3d que crea barras tridimensionales rellenas en C. Define los parámetros izquierda, superior, derecha e inferior para especificar los límites de la barra frontal más cercana, y la profundidad y banderin_tapa para controlar el apilamiento. Incluye un ejemplo que dibuja múltiples barras 3D con diferentes patrones de relleno para ilustrar el uso de la función.
1. UNIVERSIDAD TÉCNICA DE AMBATO
FACULTAD DE CIENCIAS HUMANAS Y DE LA EDUCACIÓN
CARRERA: Licenciatura EN INFORMÁTICA
REALIZADO POR:
lorena sánchez
marlene pallo
Ing:
WILMA GAVILANES
MATERIA :
Programacion II
2. Función bar 3d
Esta función creará una barra rectangular y rellenada de tres dimensiones.
La esquina superior izquierda de la barra rectangular más frontal está definida por los
argumentos izquierda y superior. Estos argumentos corresponden a los valores x e y de la
esquina superior izquierda del rectángulo más frontal.
Similarmente, los argumentos derecha e inferior definen la esquina inferior derecha del
rectángulo más frontal.
La barra tiene borde, en todas las tres dimensiones, rellenada con el color y estilo de línea
actuales.
El rectángulo más frontal es rellenado usando la trama de relleno actual y el color de
relleno como es establecido por la función setlinestyle.
El argumento banderin_tapa es usado para especificar si es o no es posible apilar varias
barras encima de cada una.
Si banderin_tapa tiene un valor distinto a cero, entonces la barra está "tapada".
Si banderin_tapa tiene un valor de cero, entonces la barra no está "tapada", permitiendo
otras barras ser apiladas encima de ésta.
Declaracion de variables
Declaración: void ahora bar3d (int izquierda, int superior, int derecha, int inferior,
int profundidad, topflagint);
Ejemplo:
#include <graphics.h>
#include <conio.h>
int main() {
int gdriver = EGA;
int gmodo = EGAHI;
int color, relleno;
int midx, midy;
3. /* Si has registrado los dispositivos para que formen parte de graphics.lib
** entonces usa estas sentencias:
registerbgidriver( EGAVGA_driver );
initgraph( &gdriver, &gmodo, "" );
/* Si no, entonces has de "decir" dónde se encuentra el dispositivo gráfico */
initgraph( &gdriver, &gmodo, "C:TCBGI" );
color = 10;
relleno = 11;
midx = getmaxx() / 2;
midy = getmaxy() / 2;
settextstyle(4,0,6);
outtextxy(200,20,"BAR 3D");
setfillstyle( relleno, color );
bar3d(midx-50, midy-50,midx+50, midy+50, 10, 1);
settextstyle(7,0,6);
outtextxy(50,250,"REALIZDO POR:");
settextstyle(8,0,6);
outtextxy(150,280,"LORENA SANCHEZ ");
outtextxy(150,300,"MARLENE PALLO");
getch(); /* Pausa */
closegraph();
return 0;
}
4. Un ejemplo utilizando bar 3d
#include <graphics.h>
#include <stdlib.h>
#include <stdio.h>
#include <conio.h>
void main()
{
int color,relleno;
/* request auto detection */
int gdriver = DETECT, gmode, errorcode;
int midx, midy,mid1x, mid1y,mid2x, mid2y,mid3x, mid3y,i;
/* initialize graphics, local variables */
initgraph(&gdriver, &gmode, "C:TCBGI");
/* read result of initialization */
errorcode = graphresult();
if (errorcode != grOk) /* an error occurred */
{
printf("Graphics error: %sn", grapherrormsg(errorcode));
printf("Press any key to halt:");
getch();
exit(1); /* terminate with error code */
}
setbkcolor(20);
midx = getmaxx() / 3;
midy = getmaxy() / 2;
mid1x = getmaxx() / 8;
mid1y = getmaxy() / 2;
5. mid2x = getmaxx() / 2;
mid2y = getmaxy() / 2;
mid3x = getmaxx() / 3;
mid3y = getmaxy() / 2;
/* loop through the fill patterns */
for (i=EMPTY_FILL; i<USER_FILL; i++)
{
/* set the fill style */
setfillstyle(i,getmaxcolor()+i);
/* draw the 3-d bar */
settextstyle(4,0,5);
outtextxy(200,10,"BAR 3D");
bar3d(midx-50,midy-150,midx+50,midy+150, 10, 1);
bar3d(mid1x-30,mid1y-50,midx+10-64, mid1y+50, 10, 1);
bar3d(mid2x-52, mid2y-50,mid2x+52, mid2y+49, 10, 1);
bar3d(mid3x-53, mid3y-50,mid3x+53, mid3y+50, 0, 0);
settextstyle(6,0,5);
outtextxy(20,390,"REALIZADO POR:");
settextstyle(6,0,8);
outtextxy(40,410,"LORENA SANCHEZ");
outtextxy(40,420,"MARLEN PALLO");
getch();
}
/* clean up */
closegraph();
return 0;
}