34
La pantalla en PASCAL

Graficas en Pascal

Embed Size (px)

Citation preview

Page 1: Graficas en Pascal

La pantalla en PASCAL

Page 2: Graficas en Pascal

Configurar la pantalla en PASCAL

El lenguaje PASCAL trabaja en entorno de MS - DOS, o sea en modo texto, esto no quiere decir que no puedo manejar modo grafico.

La instrucción USES, de la sección de Declaraciones y Definiciones, declara el tipo de librería que se ocupará CRT identifica Tubo de Rayos Catódicos.

La instrucción TEXTMODE(), en el Cuerpo del Programa identifica las Columnas y Renglones que tendrá la pantalla, y pueden ser de tres formas.

Page 3: Graficas en Pascal

Configurar la pantalla en PASCAL

Textmode(CO80) = configura la pantalla 80 Columnas y 25 Renglones.

80

25

Begin Textmode(CO80); Textcolor(4);Textbackground(0); clrscr; gotoxy(40,12);write(‘Prueba’);End.

Page 4: Graficas en Pascal

Pascal en modo Gráfico

USES CRT, GRAPH ;

Page 5: Graficas en Pascal

Program prueba;

uses CRT, GRAPH;Mientras que el modo texto tiene por estándar 80 o 40 columnas X 25 filas y la unidad de medida es el carácter.

En modo gráfico se tiene una resolución de 640 columnas X 480 filas, y la unidad se llama pixels.

Configurar la pantalla en PASCAL

40

25

Page 6: Graficas en Pascal

Acerca la lupa a la pantalla y enfoca cualquier carácter, veras que esta constituido por muchos puntos. Pues bien esos son los famosos pixels.

Page 7: Graficas en Pascal

50

80

Declaramos dos variables de tipo Integer:

Program prueba; USES CRT, GRAPH; var    Gd, Gm: Integer; begin Gd := Detect; {Se autodetecta el tipo de tarjeta gráfica} InitGraph(Gd, Gm, ‘C: TP BGI'); {Inicializa el modo gráfico} if GraphResult <> grOk then { pregunta si esta en gráfico} begin textmode(co80); textcolor(4); textbackground(0); clrscr; gotoxy(30,12);write(‘No puedo entrar a gráficos ); readkey(); Halt(1); end;

Page 8: Graficas en Pascal

InitGraph(Gd, Gm, ‘C: TP BGI');

- Esta instrucción inicia el modo gráfico, e indica donde esta la carpeta “BGI” que es donde están los archivos gráficos.

if GraphResult <> grOk then

-Si el programa pasa la condición indica que ya esta en modo grafico, si no pasa el programa no puede entrar a modo gráfico y se sale.

Page 9: Graficas en Pascal

Setcolor(Color); { Fija el color que se vaya a pintar }

Setbkcolor(color); { Fija el color del fondo de la pantalla }

Cleardevice; { limpia la pantalla, modo gráfico }

{ aquí inician las instrucciones gráficas }

CloseGraph; {Cierra el modo gráfico}

END.

Page 10: Graficas en Pascal

Program prueba; use crt, graph; var GD,GM,x,y,z Integer; Begin GD:=DETECT; INITGRAPH(GD,GM,’C: TP BGI’); if GraphResult <> grOk then begin textmode(co80); textcolor(4); textbackground(0); clrscr; gotoxy(25,12);write(‘No puedo entrar a graficas ‘); readkey; halt(1); end; setcolor(14); setbkcolor(0); cleardevice; circle( 320,240,150); readkey; closegraph;End.

Page 11: Graficas en Pascal

Primeras instrucciones

Circle(Columna, Fila, Radio); { Pinta un circulo en la columna, fila, con un radio que se mide en Pixels; }ejemplo:circle(320, 240, 150);Dibuja un circulo en la columna 320, fila 240 de 150 pixels de radio;

Page 12: Graficas en Pascal

0 639

0

479

Page 13: Graficas en Pascal

0 6390

479

Page 14: Graficas en Pascal

0 6393200

479

240

320

240

6390

160 480

120

360

320,240

Page 15: Graficas en Pascal

LineLine(X1, Y1, X2, Y2);Traza una línea recta entre 2 puntos, X1, Y1 son el punto inicial y X2, Y2 el punto final, donde: X1 = Columna InicialY1 = Fila InicialX2 = Columna FinalY2 = Fila Fina.

Page 16: Graficas en Pascal

Dibujar una línea : para trazar una línea se utiliza el comando LINE

LINE( Columna , Renglón, Columna, Renglón )

inicial final

LINEAS

Page 17: Graficas en Pascal

Program prueba; use crt, graph; var GD,GM,x,y,z Integer; Begin GD:=DETECT; INITGRAPH(GD,GM,’C: TP BGI’); if GraphResult <> grOk then begin textmode(co80); textcolor(4); textbackground(0); clrscr; gotoxy(25,12);write(‘No puedo entrar a graficas ‘); readkey; halt(1); end; setcolor(14); setbkcolor(0); cleardevice; line(0,0,639,479); Line(160,120, 480,360) readkey; closegraph;End.

Page 18: Graficas en Pascal

Estilos De Línea Y Rellenos

SetlineStyle(Estilo_de_linea, Patrón, Grosor);

Estilo_de_linea: existen cuatro estilos de línea predefinidos y uno que el usuario define como se muestra a continuación:

SolidLn = 0 línea solida(por defecto)DottedLn = 1 línea punteada CenterLn = 2 línea discontinua centrada DashedLn = 3 línea discontinua UserBitLn = 4 línea definida por el usuario

Patrón : Este es un patrón de 16 bits   definido a medida del usuario con valores en hexadecimal, si no se define ninguno, se coloca el valor por omisión que es 0.

Grosor : Este parámetro fija el ancho en pixelesNormWidth normal 1 pixel de grosorThickWidth Grueso 3 pixeles de grosor

SetlineStyle( 0, 0, 3);

Page 19: Graficas en Pascal

LinetoTraza una línea desde donde se quedo hasta lo indicado por LINETO(columna, renglón). Al borrar la pantalla el apuntador regresa a las coordenadas 0,0, de aquí LINETO(639,479); se traza una línea que cruza la pantalla. Otra instrucción utilizada es MOVETO(C,R), que mueve la pluma a las coordenadas columna, renglón

Page 20: Graficas en Pascal

Program prueba; use crt, graph; var GD,GM,x,y,z : Integer; Begin GD:=DETECT; INITGRAPH(GD,GM,’C: TP BGI’); if GraphResult <> grOk then begin textmode(co80); textcolor(4); textbackground(0); clrscr; gotoxy(25,12);write(‘No puedo entrar a graficas ‘); readkey; halt(1); { abandona el programa } end; setcolor(4); setbkcolor(0); cleardevice; { se pone en 0,0} Lineto(639,0); Lineto(639,479); Lineto(0,479); Lineto(0,0); readkey; closegraph; End.

Page 21: Graficas en Pascal

0 6393200

479

240

320

240

6390

160 480

120

360

320,240

Page 22: Graficas en Pascal

Analizando el dibujo anterior vamos hacer unas líneas con LINETO y MOVETO

Setcolor(14); Setbkcolor(0); cleardevice; moveto(320,120); Lineto(160,240); Setcolor(9); Lineto(320,360); Setcolor(10); Lineto(480,240); Setcolor(4); Lineto(320,120); Readkey;

{ Practica: cruza con dos líneas este cuadrado }

Page 23: Graficas en Pascal

Rectangle

Rectangle(X1, Y1, X2, Y2);Dibuja un rectángulo entre 2 puntos, X1, Y1 son el punto inicial y X2, Y2 el punto final, donde: X1 = Columna InicialY1 = Fila InicialX2 = Columna FinalY2 = Fila Final.

Page 24: Graficas en Pascal

Program prueba; use crt, graph; var GD,GM,x,y,z : Integer; Begin GD:=DETECT; INITGRAPH(GD,GM,’C: TP BGI’); if GraphResult <> grOk then begin textmode(co80); textcolor(4); textbackground(0); clrscr; gotoxy(25,12);write(‘No puedo entrar a graficas ‘); readkey; halt(1); { abandona el programa } end; setcolor(14); setbkcolor(0); cleardevice; rectangle(0,0,639,479); setcolor(5); rectangle(160,120,480,360); readkey; closegraph; End.

Page 25: Graficas en Pascal

PUTPIXEL

Putpixel(Columna, Fila, Color);Pinta un pixel (Puntito) en la columna, fila con el color determinado;

Page 26: Graficas en Pascal

Program prueba; use crt, graph; var GD,GM, x , y , z :Integer; Begin GD:=DETECT; INITGRAPH(GD,GM,’C: TP BGI’); if GraphResult <> grOk then begin textmode(co80); textcolor(4); textbackground(0);clrscr; gotoxy(25,12);write(‘No puedo entrar a graficas ‘); readkey; halt(1); end; Rectangle(0,0,639,479); Repeat PutPixel(Random(getmaxX),Random(getmaxY),random(16)); Delay(20); until KeyPressed; readkey;   CloseGraph; End.

Page 27: Graficas en Pascal

B A R

Bar(X1, Y1, X2, Y2);Dibuja un rectángulo relleno (el estilo del relleno y color de este se fijan mediante los procedimientos setfillstyle y setcolor) entre 2 puntos, X1, Y1 son el punto inicial y X2, Y2 el punto final, donde: X1 = Columna InicialY1 = Fila InicialX2 = Columna FinalY2 = Fila Final

Page 28: Graficas en Pascal

Program prueba; use crt, graph; var GD,GM, x , y , z :Integer; Begin GD:=DETECT; INITGRAPH(GD,GM,’C: TP BGI’); if GraphResult <> grOk then begin textmode(co80); textcolor(4); textbackground(0);clrscr; gotoxy(25,12); write(‘ No puedo entrar a gráficas ‘); readkey; halt(1); end; Rectangle(0,0,639,479); Repeat PutPixel(Random(getmaxX),Random(getmaxY),random(16)); Delay(20); until KeyPressed; readkey;   CloseGraph; End.

Page 29: Graficas en Pascal

Bar3D(X1, Y1, X2, Y2, profundidad, tapada);Dibuja un rectángulo en tercera dimensión 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.  X1 = Columna InicialY1 = Fila InicialX2 = Columna FinalY2 = Fila FinalProfundidad = Distancia de el borde hacia el interiorTapada = Tapa superior si esta en verdadero, sin ella cuando es falso.

Page 30: Graficas en Pascal

Setfillstyle(Estilo_de_Relleno, Color);

Sirve para dar el estilo de relleno para cualquier área cerrada(un círculo, rectángulo, una curva ), donde:

Estilo_de_Relleno

EmptyFill = 0 , Con el color del fondo. SolidFill = 1 , Relleno con el color especificado. LineFill = 2 , Relleno con ---. LtSlashFill = 3,  Relleno con ///. SlashFill = 4 , Relleno con ///. BkSlashFill = 5, Relleno con \\\ . LtBkSlashFill = 6, Relleno con \\\. HatchFill = 7, Cuadriculado fino. XHatchFill = 8, Cuadriculado grueso.   InterleaveFill = 9, Intercala líneas. WideDotFill = 10, Puntos muy dispersos. CloseDotFill = 11, Puntos con poca separación. UserFill = 12 Patrón de rellenado definido por el usuario.

Page 31: Graficas en Pascal

Setcolor(15) setbkcolor(0), cleardevice;Rectangle(0,0,639,479);X:=0;Repeat setcolor(14); line(320,240,x,0); setcolor(4); line(320,240,x,479); delay(10); x:=x+10;Until (x< 640);Readkey;

Page 32: Graficas en Pascal

Setcolor(15) setbkcolor(0), cleardevice;Rectangle(0,0,639,479);X:=0;Repeat setcolor(14); line(320,0,x,479); setcolor(4); line(320,479,x,0); delay(10); x:=x+10;Until (x< 640);Readkey;

Page 33: Graficas en Pascal

Rutinas Para Escritura De Texto SetTextStyle(Tipo_de_letra, Orientación,Tamaño);

Permite establecer el tipo de letra, la orientación y el tamaño de está, donde

Tipo_de_letra : Es un número cualquiera entre 0 y 10;

Orientación: 0 si es Horizontal, 1 Vertical

Tamaño: Un número de tipo Word.

OutText(Cadena_De_Texto);

Imprime la Cadena_de_Texto.

OutTextXY(Columna,Fila,Cadena_De_Texto); Imprime la Cadena_de_Texto en la Columna, Fila.Tanto para Outext  como Outextxy son afectadas por  setcolor, settextjustify y settextstyle.

Page 34: Graficas en Pascal

Program Tipos_De_Letra; Uses crt, graph; var Gd, Gm : Integer; i   : byte; begin GD := Detect; InitGraph(GD, GM, ' C:/TP/BGI'); if GraphResult <> grOk then Halt(1); for i:=0 to 10 do    begin          settextstyle(i,0,1);          outtextxy(1,1*10,'Tutor de Programación');delay(50)     end; readkey;    CloseGraph;end.