Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Ventana
Antes de empezar a
conocer cada una de las
funciones de una librera,
debemos comprender la
abstraccion utilizada
para crear esta librera
Para la librera grafica, las
reas de trabajo se
dividen en:
Ventana (Window)
rea de Dibujo (Drawing)
En la pantalla pueden
crearse ventanas, y
En cada ventana puede
crearse una rea de
dibujo.
rea de Dibujo
#include <graphapp.h>
void main()
{
gprintf("Hello world\n");
}
#include
void main()
{
point a = pt(10,10);
point b = pt(10,40);
point c = pt(50,40);
drawline(a, b);
drawline(b, c);
drawline(c, a);
}
dibuja el punto p
void fillarc(rect r, int ang_ ini, int ang_ fin); rellena una rco con el color actual
void drawellipse(rect r);
void fillellipse(rect r);
#include <graphapp.h>
void main()
{
rect r = rect(10,10,80,10);
setcolour(Red);
drawrect(r);
setcolour(Blue);
fillrect(rect(10,40,80,10));
}
Permite cambiar el
color actual, por el
especificado por c
Los colores posibles
son:
Transparent ,Black ,White
,Blue ,Yellow ,Green
,Magenta ,Red ,Cyan
,Grey ,Gray ,LightGrey
,LightGray ,DarkGrey
,DarkGray ,DarkBlue
,DarkGreen ,DarkRed
,LightBlue ,LightGreen
,LightRed ,Pink ,Brown
,Orange ,Purple ,Lime
void main()
{
window w;
w = newwindow(A Window", rect(0,0,170,100),StandardWindow);
show(w);
mainloop();
}
#include <graphapp.h>
void DibujarEnVentana(window w, rect winrect);
void main(){
window w;
w = newwindow("Rectangles", rect(0,0,170,100),
StandardWindow);
/*
* Cuando se dibuje la ventana, se ejeutara
*
la tarea Dibujar en Ventana
*/
setredraw(w, DibujarEnVentana);
show(w);
mainloop();
}
void DibujarEnVentana(window w, rect winrect){
rect r = rect(10,10,80,10);
setcolour(Red);
drawrect(r);
setcolour(Blue);
fillrect(rect(10,40,80,10));
}
Dibujos:
Ventanas:
rea de dibujo y
fn es un procedimiento que debe ser creado
por
#include "graphapp.h"
void DibujarEnAD(drawing d, rect r);
void main(){
window w;
drawing d;
rect r;
w = newwindow("Rectangles", rect(50,50,150,200),
StandardWindow);
setbackground(w, LightGrey);
r = rect(10,10,100,100);
d = newdrawing(r, DibujarEnAD);
show(w);
mainloop();
}
void DibujarEnAD(drawing d, rect r){
setcolour(Red);
drawrect(r);
setcolour(Blue);
fillrect(rect(10,40,80,10));
}
#include "graphapp.h"
void DibujarEnAD(drawing d, rect r);
void main(){
window w;
drawing d;
rect r;
w = newwindow("Rectangles", rect(50,50,150,200),StandardWindow);
Cambiar color del fondo de la
setbackground(w, LightGrey);
r = rect(10,10,100,100);
ventana w
d = newdrawing(r, DibujarEnAD);
show(w);
Se crea y dibuja en la nueva rea
mainloop();
void
void
void
void
void
#include "graphapp.h"
void DibujarPunto(drawing d, int buttons, point p);
void main()
{
window w;
drawing d;
w = newwindow("Dots", rect(50,50,200,200), StandardWindow);
d = newdrawing(rect(10,10,180,180), NULL);
setbackground(w, LightGrey);
Cuando se aplasta
setmousedown(d, DibujarPunto);
setmousedrag(d, DibujarPunto);
show(w);
mainloop();
un botn del
mouse, ejecute DibujarPunto
}
void DibujarPunto(drawing d, int buttons, point p){
if (buttons & LeftButton)
setcolour(Red);
Si se aplasto el botn Izquierdo,
else if (buttons & MiddleButton)
cambie a color Rojo
setcolour(Green);
else if (buttons & RightButton)
setcolour(Blue);
drawpoint(p);
Dibuje el punto
}
#include <graphapp.h>
#include <genlib.h>
#include <strlib.h>
show(w);
mainloop();
w = strwidth(currentfont(),s);
if (pactual.x + w >= getwidth(d)){
pactual.x = 0;
pactual.y = pactual.y +getheight(currentfont());
}
drawstr(pactual,s);
Se dibuja la letra
pactual.x = pactual.x+w;
en el punto actual
usando drawstr
#include <graphapp.h>
#include <genlib.h>
#include <strlib.h>
void MostrarEleccion(checkbox c);
void Salir(void);
label l;
main()
{
window w;
checkbox c1, c2;
button b;
w = newwindow("Pizza", rect(0,0,200,200), StandardWindow);
c1 = newcheckbox(Jamon", rect(10,50,160,25), MostrarEleccion);
c2 = newcheckbox(Hongos", rect(10,90,160,25), MostrarEleccion);
b = newbutton("Quit", rect(10,170,80,30), Salir);
l = newlabel("",rect(0,0,100,50),AlignTop);
show(w);
Cuando se
mainloop();
}
void MostrarEleccion(checkbox c){
if (ischecked(c)){
settext(l,Concat("Desea ", gettext(c)));
}
else{
settext(l,Concat("Ya no desea ", gettext(c)));
}
}
void Salir(button b){
exitapp();
}
de click sobre c2 y c1 se
ejecutara el procedimiento
MostrarEleccion