35
guaje Pascal Maneja la Pantalla del Monitor en modo

Grafico en Pascal

Embed Size (px)

DESCRIPTION

Forma de hacer graficos en pascal

Citation preview

  • El Lenguaje Pascal Maneja la Pantalla del Monitor en modo Texto

  • Modos de Pantalla en Pascal ver 7.0

  • El Comando TextMode define el modo de la pantalla

    TextMode (CO40); -> Pantalla de 40 Columnas y 25 Renglones

    TextMode(CO80); -> Pantalla de 80 Columnas y 25 Renglones

    TextMode (CO80+Font8X8); Pantalla de 80 Columnas y 50 RenglonesTextMode(CO40);2540

  • TextMode (CO80);TextMode(CO80 + Font8X8);25805080

  • La Instruccin TextMode, va al inicio del programa para configurarel modo de pantalla, en columnas y renglones que se va a manejar.

    Program Prueba; Uses Crt; Begin Textmode(CO40); Textcolor(14); TextBackground(1); Clrscr; Gotoxy(20,12); write( H o l a); Readkey; End.

  • La Instruccin GOTOXY(X,Y) sirve para colocar el cursosen las coordenadas de pantalla ( Columna, Rengln ), y esto va en relacin a la instruccin TextMode que configura lasColumnas y Renglones de la Pantalla.TextMode(CO40);GOTOXY(X,Y);ColumnaRenglnAs: Gotoxy(20,13); write(H o l a);Coloca el cursor en Columna 20, Rengln 13

  • TextMode (CO80);As: Gotoxy(40,12); write(H o l a);Coloca el Cursor en Columna 40, Rengln 12TextMode(CO80 + Font8X8);As: Gotoxy(40,25); write(H o l a);Coloca el Cursor en Columna 40, Rengln 25

  • Modos de Pantalla en Pascal ver 7.0

  • Para MODO GRAFICO la unidad bsica es el PIXELPIXEL significa Picture Element, Elemento de Dibujo y es en realidad un punto en una pantalla grfica.Se tiene 640 Pixeles Horizontales y 480 Pixeles Verticales

  • Actualmente se auto detecta el modo grfico VGAHI con una resolucin de : 640 X 480 pixels.Para que me entiendas mejor que es un pixel, has lo siguiente:1. Consguete una lupa2. Si estas trabajando bajo Windows 98 o XP, da Click en inicio.3. Click en Ms-Dos4. Acerca la lupa a la pantalla y enfoca cualquier carcter, verasque esta constituido por muchos puntos. Pues bien esos son los famosos pixels.Colocados de la siguiente forma :

  • 06390479

  • 063932004792403202406390160480120360320,240

  • Para entrar a modo grfico primero se tiene que cargar la libreraGrfica GRAPH, junto con CRT :

    Graph: con la diversidad de funciones y procedimientos que provee, sumados a unos sencillos algoritmos permite hacer desde una simplelnea o un crculo hasta una simulacin matemtica o un videojuego.

    Program graficas; Uses CRT, GRAPH; Var Gd, Gm : Integer; {Declaro dos variables Integer de control } Begin {Inicio del programa principal} Gd := Detect; {Detecta el tipo de tarjeta grfica }

  • Program graficas; uses CRT, GRAPH; Var Gd, Gm : Integer;Begin {Inicio del programa principal} Gd := Detect;{Detecta el tipo de tarjeta grfica para el monitor en el que se este ejecutando el programa} InitGraph(Gd, Gm, Archivos BGI'); {inicializa el modo grafico}

    If GraphResult grOk then Halt(1);

    {Evala, si la inicializacin al modo fue correcta }{Debemos informar al usuario que la iniciacin al modo grfico no fue correcta }

  • Program graficas; Uses Crt,Graph; Var gd,gm:Integer; Begin gd:=DETECT; initgraph( gd, gm ,C:\tp\bgi); if graphresult < > grOK then begin gotoxy(30,12);write(No puedo entrar a modo grafico); readkey; halt(1); end; { si el programa pasa de aqu estamos en modo grafico }

  • Dibujar una lnea : para trazar una lnea se utiliza el comando LINELINE( Columna , Rengln, Columna, Rengln )

    inicial finalLINEAS

  • Program graficas; Uses Crt,Graph; Var gd,gm:Integer; Begin gd:=DETECT; initgraph( gd, gm ,C:\tp\bgi); if graphresult < > grOK then begin gotoxy(30,12);write(No puedo entrar a modo grafico); readkey; halt(1); { Salirse del programa } end; { si el programa pasa de aqu estamos en modo grafico } LINE ( 0 , 0 , 639 , 479); readkey; END.

  • Otra forma de dibujar una lnea es con LINETO, que traza desde donde se quedo el ultimo trazo hasta lo indicado por LINETO. Por ejemplo, si el ultimo trazo fue LINE(0,0,639,479); la lnea quedo en la posicin 639,279, asLINETO ( 320,240);

  • La instruccin para borrar pantalla en modo grafico es:CLEARDEVICE;La funcin para color de primer plano es: SETCOLOR(color);Los colores son los normalmente manejador del 0 al 15La funcin para color de fondo es: SETBKCOLOR(color);Los colores de fondo son del 0 al 8Al terminar el programa de grficos se debe cerrar la pantalla grfica con: CLOSEGRAPH;, que debe ser la ultima instruccin antes del END.

  • Para dibujar un RECTNGULO se utiliza RECTANGLERectangle(0,0,639,479);RECTANGLE ( COLUMNA, RENGLON, COLUMNA RENGLON ) inicio final

  • Putpixel(Columna, Fila, Color);Pinta un pixel (Puntito) en la columna, fila con el color determinado; ejemplo: putpixel(Getmaxx Div 2, GetmaxY Div 2, Red);pinta un punto en el centro de la pantalla de color Rojo.putpixel(100,150, Magenta);pinta un punto en la columna 100, fila 150 de color Magenta.

  • Para generar pixeles al azar utilizamos el generador de nmeros al azar en columna rengln y color:Setcolor (4);Setbkcolor(0);cleardevice; BAR(0,0,639,479);Repeat x:=random(640); y:=random(480); Color:=random(16); Putpixel (x,y,color); delay(50);Until (keypressed);Readkey;

  • program Uso_De_ PutPixel; uses Crt, Graph; var Gd, Gm : Integer; Begin GD := Detect; InitGraph(GD, GM, C:\TP\BGI'); if GraphResult grOk then Halt(1); Repeat PutPixel(Random(640),Random(480),random(16)); Delay(50); until KeyPressed; CloseGraph; End.

  • BAR(X1, Y1, X2, Y2);Dibuja un rectngulo relleno (el estilo del relleno y colorde este se fijan mediante los procedimientos setfillstyle y setcolor) puntos, X1, Y1 son el punto inicial y X2, Y2 el punto final, BAR(160,120,480,360);

  • Bar3D(X1, Y1, X2, Y2, profundidad, tapada);

    Dibuja un rectngulo en tercera dimensin entre 2 puntos,X1, Y1 son el punto inicial y X2, Y2 el punto final, profundidad es la distancia desde el borde hacia el interior y tapada es una variable de tipo BOOLEAN que la dibuja con la tapa superior cuando esta en True, y sin ella cuando esta en False.

  • CurvasCircle(Columna, Fila, Radio);Pinta un circulo en la columna, fila, con un radio que se mideen Pixels; por ejemplo: Circle(320,240, 200);Dibuja un circulo en la columna 320, fila 240 de 200 pixels de radio;

  • ARC (C,F, Ang_ini, Ang_fin, Radio);

    Arc(Columna, Fila, Angulo_inicial, Angulo_final, radio);Pinta una porcin de un circulo en la columna, fila con un radio que se mide en pixels, empezando en Angulo_incial en el sentido contrario al de las manecillas del reloj y terminando en Angulo_final, en el sentido matemtico

  • Trazo de arcos: en forma matemtica090180270360Opuesto a las manecillasdel reloj.

  • Rectangle(0,0,639,479);Line(320,0,320,479);Line(0,240,639,240);X:=0;Repeat ARC(320,240,0,180,x); delay(200); X:=X+10;Until(x>320);Readkey;Closegraph;End.

  • Ellipse(Columna, Fila, Angulo_inicial, Radio_Columnas, Radio_filas);

    Se comporta de manera similar a Arc, solo que aqu se Pinta un ovalo y se debe especificar el radio en X y Y.

  • PieSlice(Columna,Fila, ngulo_inicial, Angulo_final, Radio); PieSlice dibuja un trozo de Circulo relleno con centro C, R,y comienza en Ang_inicial y termina en Ang_Final, y como ltimo valor se le da el radio. Esto matemticamente iniciando de 0 hasta 360, el color se configura con setfillstyle(1,color);

  • FillEllipse(Columna, Fila, Radio_Columnas, Radio_filas);Pinta una elipse rellena (Un ovalo), cuyo radio en radio en X y Y se debe especificar, setcolor(4);{Se fija el color a ROJO}Setfillstyle(1,YELLOW); {Se fija el estilo de relleno a liso con color amarillo}floodfill(getmaxx div 2,getmaxy div 2,YELLOW);{Se rellena el circulo con color amarillo}

  • Sector(Columna,Fila, Angulo_inicial, Angulo_final, RadioX, RadioY);

    Sector dibuja un sector con centro en columna, fila, queempieza en Angulo_Inicial, termina en Angulo_Final, con unradio horizontal RadioX y un radio vertical RadioY., donde elAngulo_Inicial y Angulo_Final es matemticamente.

  • TEXTOSEl sistema Grafico tambin permite colocar textos adems de tamaos, colores y diferentes tipos de letras. Las instrucciones son;OutText (TEXTO);OutTextXY( X, Y, TEXTO);La instruccin OutText (TEXTO); coloca el texto donde est la pluma de dibujor, para posicionarla utiliza la instruccin Moveto (X,Y);OutTextXY( X,Y,TEXTO); La instruccin posiciona el TEXTO en las coordenadas en Columna, Rengln.(pixeles)

    OutTextXY( 320,240,Prueba de OutTextXY);Moveto(320,100); OutText(Prueba de OutText)Readkey;Closegraph;End.

  • SetTextStyle( Tipo de letra, Direccin, Tamao);SetTextStyle : puede modificar el tipo de letra, orientacin de la escritura y el tamao de letra que se escribe.Tipo de letra : Puede seleccionarse con nmero o con nombre, los nombres estn en la carpeta BGI. (nmeros del 0 al 13)Direccin 0 = Horizontal 1 = VerticalTamao : PixelesSetcolor(14);SetTextStyle(5, 0, 4);OutTextXY(150,240,Prueba de Texto);{ debes de probar los diferentes tipos de letras y los tamaos }