programación ii - tema 5. graficación básica con c 03052015

30
Programación II Matemáticas Aplicadas y Computación Andrés Hernández Balderas 2015

Upload: hector-aguilar

Post on 08-Nov-2015

12 views

Category:

Documents


1 download

DESCRIPTION

graficacion en C

TRANSCRIPT

  • Programacin II

    Matemticas Aplicadas y Computacin Andrs Hernndez Balderas

    2015

  • 5. Graficacin Bsica con C

  • 5.1 Recursos para la graficacin

    Recursos

    Fsicos Monitor Tarjeta grfica Memoria

    Lgicos Lenguaje + Bibliotecas

    Colores Pixeles Lneas Crculos Rectngulos Rellenos Etc.

  • 5.1 Recursos para la graficacin

    En cuanto a recursos lgicos, en este curso se hace uso del lenguaje C y de la biblioteca winbgim.

    Los recursos fsicos depende de cada una de las computadoras donde se ejecute el cdigo.

  • 5.1 Recursos para la graficacin

    La forma de iniciar el modo grfico es con la instruccin:

    initwindow(int ancho, int alto);

    Se abrir una ventana de tamao ancho x alto pixeles donde el origen ser el pixel en la posicin (0,0).

  • 5.1 Recursos para la graficacin

    (0,0)

    (0,Ymax)

    (Xmax,0)

    (Xmax,Ymax)

    pixel

    Incr

    emen

    to d

    e Y

    Incremento de X

  • 5.2 Funciones de posicionamiento

    Muchas de las funciones grficas involucran una posicin. Sin embargo, si se desea posicionar el cursor en un pixel determinado se puede hacer uso de la funcin:

    moveto(int x, int y);

  • 5.3 Funciones de graficacin

    Inicia modo grfico

    initwindow(int ancho,int alto);

    Para cerrar modo grfico

    closegraph();

  • 5.3 Funciones de graficacin

    Obtiene el valor de la mxima coordenada horizontal

    getmaxx();

    Obtiene el valor de la mxima coordenada vertical

    getmaxy();

  • 5.3 Funciones de graficacin

    Borrar pantalla

    cleardevice ();

    Establece el color actual

    setcolor (int color);

    color es un entero que indica el color que se utilizar por default para dibujar los grficos

  • 5.3 Funciones de graficacin

    Nombre de la constante (color) Valor

    BLACK 0

    BLUE 1

    GREEN 2

    CYAN 3

    RED 4

    MAGENTA 5

    BROWN 6

    LIGHTGRAY 7

    DARKGRAY 8

    LIGHTBLUE 9

    LIGHTGREEN 10

    LIGHTCYAN 11

    LIGHTRED 12

    LIGHTMAGENTA 13

    YELLOW 14

    WHITE 15

    Si se desea utilizar un color RGB se puede hacer uso de la funcin:

    COLOR (R, G, B);

  • 5.3 Funciones de graficacin

    Traza una lnea desde la posicin actual de cursor hasta (x,y)

    lineto (int x, int y);

    Traza una lnea desde (x1,y1) hasta (x2,y2)

    line (int x1, int y1, int x2, int y2);

  • 5.3 Funciones de graficacin

    Dibuja un circulo en (x,y) de radio r

    circle (int x, int y, int r);

    Rectngulo del punto (izquierda, arriba) a (derecha, abajo)

    rectangle (int izq, int arr, int der, int abaj);

  • 5.3 Funciones de graficacin

    Dibuja un pixel en (x,y) de color c

    putpixel (int x, int y, int c);

    Dibuja un arco centrado en (x,y) desde un ngulo inicial iniang hasta un ngulo final finang y radio radio. Los ngulos se miden en sentido inverso a las manecillas del reloj iniciando en las 3 hrs.

    arc(int x, int y, int iniang, int finang, int radio);

  • 5.3 Funciones de graficacin

    Dibuja una elipse con centro (x,y) desde un ngulo inicial iniang hasta un ngulo final finang y radios radiox y radioy

    ellipse(int x, int y, int iniang, int finang, int radiox, int radioy);

  • 5.3 Funciones de graficacin

    Traza un polgono de npuntos-1 vrtices de acuerdo a las coordenadas de *puntos. Para que el polgono se dibuje correctamente (se cierre), la primera y ltima coordenada deben ser iguales

    drawpoly(int npuntos, int *puntos);

  • 5.3 Funciones de graficacin

    Establece una subventana dentro de la ventana principal. Los parmetros (iz,ar), (de,ab) indican las coordenadas que definen el rectngulo contenedor de la subventana. C (0 o 1) indica si la grfica se cortar si rebasa los lmites. Los trazos solo afectarn a esta rea. El primer pixel ser el nuevo origen (0,0).

    setviewport(int iz, int ar, int de, int ab, int C);

  • 5.3 Funciones de graficacin

    Borra el contenido del viewport actual

    clearviewport();

  • 5.3 Funciones de graficacin

    Establece el estilo que lnea que se utilizar en los siguientes trazos. Se debe especificar el estilo de lnea e, la trama de usuario t y el grosor g. La trama slo se debe establecer cuando e=USERBIT_LINE

    setlinestyle(int e, unsigned t, int g);

  • 5.3 Funciones de graficacin

    Estilo de lnea Valor Descripcin

    SOLID_LINE 0 Lnea continua

    DOTTED_LINE 1 Lnea punteada

    CENTER_LINE 2 Lnea centrada

    DASHED_LINE 3 Lnea discontinua

    USERBIT_LINE 4 Lnea definida por el usuario

    Grosor Valor Descripcin

    NORM_WIDTH 1 1 pixel

    THICK_WIDTH 3 3 pixeles

    Para la trama de usuario, un bit 1 en esta trama indica que el pxel correspondiente ser asignado el color actual. Un bit 0 indica que el pxel correspondiente no ser alterado.

  • 5.3 Funciones de graficacin

    Establece el estilo de relleno de acuerdo a la trama y color deseados

    setfillstyle(int trama, int color);

  • 5.3 Funciones de graficacin

    Trama Valor Significado

    EMPTY_FILL 0 Rellena con el color de fondo

    SOLID_FILL 1 Rellena enteramente

    LINE_FILL 2 Rellena con lneas horizontales: ---

    LTSLASH_FILL 3 Rellena con rayas finas: ///

    SLASH_FILL 4 Rellena con rayas gruesas: ///

    BKSLASH_FILL 5 Rellena con rayas inversas y finas: \\\

    LTBKSLASH_FILL 6 Rellena con rayas inversas y gruesas: \\\

    HATCH_FILL 7 Rellena con lneas cruzadas cuadriculadamente: +++

    XHATCH_FILL 8 Rellena con lneas cruzadas diagonalmente: XXXX

    INTERLEAVE_FILL 9 Rellena con lneas entrelazadas

    WIDE_DOT_FILL 10 Rellena con lunares bastante distanciados

    CLOSE_DOT_FILL 11 Rellena con lunares poco distanciados

    USER_FILL 12 Rellena con la trama definida por el usuario

  • 5.3 Funciones de graficacin

    Dibuja una elipse, con centro en (x,y) y radios radiox y radioy, rellena con el estilo actual.

    fillellipse(int x, int y, int radiox, int radioy);

    Dibuja un polgono relleno con el estilo actual

    fillpoly(int npuntos, int *puntos);

  • 5.3 Funciones de graficacin

    Dibuja una rebanada de pastel con centro en (x,y) desde un ngulo inicial i hasta un ngulo final f y radio r, rellena con el estilo actual.

    pieslice(int x, int y, int i, int f, int r);

    Dibuja una rebanada de pastel elptico con centro en (x,y) desde un ngulo inicial i hasta un ngulo final f y radios rx y ry , rellena con el estilo actual.

    sector(int x, int y, int i, int f, int rx, int ry);

  • 5.4 Combinacin de texto y grficas

    No es posible utilizar funciones como printf para escribir texto ya que se est utilizando el modo grfico.

    Para escribir en este ambiente, se hace uso de funciones que permiten elegir una fuente o tamaos diferentes al estndar.

  • 5.4 Combinacin de texto y grficas

    Establece la fuente del texto f, la direccin en que ser desplegado dir y el tamao de los caracteres t.

    settextstyle(int f, int dir, int t);

  • 5.4 Combinacin de texto y grficas

    Constante fuente Valor Significado

    DEFAULT_FONT 0 Fuente bitmap de 8x8

    TRIPLEX_FONT 1 Fuente escalable de tipo triple

    SMALL_FONT 2 Fuente escalable pequea

    SANS_SERIF_FONT 3 Fuente escalable de tipo sans serif

    GOTHIC_FONT 4 Fuente escalable de tipo gtico

    SCRIPT_FONT 5 Fuente escalable de tipo manuscrito

    SIMPLEX_FONT 6 Fuente escalable de tipo manuscrito simple

    TRIPLEX_SCR_FONT 7 Fuente escalable de tipo manuscrito triple

    COMPLEX_FONT 8 Fuente escalable de tipo complejo

    EUROPEAN_FONT 9 Fuente escalable de tipo europeo

    BOLD_FONT 10 Fuente escalable en negrita

    Constante direccin Valor Significado

    HORIZ_DIR 0 Texto horizontal

    VERT_DIR 1 Texto vertical

  • 5.4 Combinacin de texto y grficas

    El texto puede justificarse alrededor de la posicin actual del cursor. La justificacin por default es a la izquierda si el texto est en horizontal horiz y en la parte superior si se despliega en forma vertical vert.

    settextjustify(int horiz, int vert);

  • 5.4 Combinacin de texto y grficas

    Constante horizontal Valor Significado

    LEFT_TEXT 0 Justificar a la izquierda

    CENTER_TEXT 1 Centrar el texto

    RIGHT_TEXT 2 Justificar a la derecha

    Constante vertical Valor Significado

    BOTTOM_TEXT 0 Justificar debajo

    CENTER_TEXT 1 Centrar el texto

    TOP_TEXT 2 Justificar arriba

  • 5.4 Combinacin de texto y grficas

    Despliega en la posicin actual, una cadena de caracteres utilizando la fuente, la direccin y el tamao actuales.

    outtext(char *cadena);

    Despliega, en la posicin (x,y), una cadena de caracteres utilizando la fuente, la direccin y el tamao actuales.

    outtextxy(int x, int y, char *cadena);