#
# Vengono usati i comandi:
# PQ(A,B) che traccia in blu il segmento che congiunge A a B
# Ptext(A,f) che scrive in grassetto la frase f nel punto A
# PQtext(A,B,f) che scrive la frase f nel punto medio di AB
#
BF=7.5; HF=5 # posso cambiare le dimensioni della finestra
boxN(-70,70, -70,70) # mi conviene lasciare questa scala
BOX() # lo metto per vedere la griglia; poi lo tolgo
A <- c(0,60); B <- c(-30,40); C <- c(30,40)
PQ(A,B); PQ(A,C); D <- c(-45,20); E <- c(-15,20)
PQ(B,D); PQ(B,E); F <- c(-30,0); G <- c(0,0)
PQ(E,F); PQ(E,G)
|
A, B, ..., G sono le variabili
con cui ho chiamato i punti che
sono i "nodi" del grafo. Potevo
ovviamente scegliere altri nomi.
|
Ptext(A,"popolazione residente"); Ptext(B,"attiva")
Ptext(C,"non attiva"); Ptext(D,"occupati")
Ptext(E,"in cerca di o."); Ptext(F,"disoccup.")
Ptext(G,"inoccup."); PQtext(A,B,"38%"); PQtext(A,C,"62%")
PQtext(B,D,"35.8%"); PQtext(B,E,"2.2%"); PQtext(E,F,"0.4%")
PQtext(E,G,"1.8%%")
#
#
BF=7.5; HF=5
boxN(-70,70, -70,70)
A <- c(0,60); B <- c(-30,40); C <- c(30,40)
PQ(A,B); PQ(A,C); D <- c(-45,20); E <- c(-15,20)
PQ(B,D); PQ(B,E); F <- c(-30,0); G <- c(0,0)
PQ(E,F); PQ(E,G)
Ptext(A,"popolazione residente"); Ptext(B,"attiva")
Ptext(C,"non attiva"); Ptext(D,"occupati")
Ptext(E,"in cerca di o."); Ptext(F,"disoccup.")
Ptext(G,"inoccup."); PQtext(A,B,"38%"); PQtext(A,C,"62%")
PQtext(B,D,"35.8%"); PQtext(B,E,"2.2%"); PQtext(E,F,"0.4%")
PQtext(E,G,"1.8%")
#
# In alcuni casi, come il seguente, può essere comodo realizzare i grafi "orizzontalmente":
#
# Per realizzare grafi come questo posso utilizzare anche i comandi seguenti:
# Ptext2(A,f) che scrive in grassetto la frase f a destra del punto A
# PULISCI(a,b, c,d) che cancella il rettangolo che ha (a,b) e (c,d) come vertici opposti
#
BF=6; HF=3.5 # posso cambiare le dimensioni della finestra
boxN(-70,70, -70,70) # mi conviene lasciare questa scala
BOX() # lo metto per vedere la griglia; poi lo tolgo
x1=-53; x2=-10; x3=25
A=c(x1,0); B=c(x2,40); C=c(x2,0); D=c(x2,-40); PQ(A,B); PQ(A,C); PQ(A,D)
E = c(x3,50); F=c(x3,40); G=c(x3,30); PQ(B,E); PQ(B,F); PQ(B,G)
H = c(x3,15); K=c(x3,5); L=c(x3,-5); M=c(x3,-15); PQ(C,H); PQ(C,K); PQ(C,L); PQ(C,M)
N = c(x3,-30); O=c(x3,-40); P=c(x3,-50); PQ(D,N); PQ(D,O); PQ(D,P)
#
PULISCI(-80,-80, x1+11,80) # o CANCELLA o CLEAN
Ptext(A,"Attività\neconomiche")
PULISCI(x2-12,-80, x2+12,80)
Ptext(B,"primario")
Ptext(C,"secondario\n(industria)\n")
Ptext(D,"terziario\n(servizi)\n")
Ptext2(E," agricoltura"); Ptext2(F," pesca"); Ptext2(G," allevamento")
Ptext2(H," manufatti"); Ptext2(K," minerali"); Ptext2(L," elettricità,gas,acqua")
Ptext2(M," costruzioni"); Ptext2(N," commercio"); Ptext2(O," trasporti"); Ptext2(P," ...")
#
# Altro esempio. Il grafo ad albero di un termine:
boxN(-70,70, -70,70)
# BOX()
A <- c(20,60); B <- c(-10,30); C <- c(50,30)
PQ(A,B); PQ(A,C)
D <- c(-40,10); E <- c(20,10); F <- c(40,10); G <- c(60,10)
PQ(B,D); PQ(B,E); PQ(C,F); PQ(C,G)
H <- c(-55,-10); I <- c(-25,-10); J <- c(5,-10); K <- c(35,-10)
PQ(D,H); PQ(D,I); PQ(E,J); PQ(E,K)
L <- c(-65,-25); M <- c(-45,-25); N <- c(-25,-25)
PQ(H,L); PQ(H,M); PQ(I,N)
Ptext(A,"+"); Ptext(B,"/"); Ptext(C,"*"); Ptext(D,"*"); Ptext(E,"-"); Ptext(F,"x"); Ptext(G,"5")
Ptext(H,"^"); Ptext(I,"-"); Ptext(J,"9"); Ptext(K,"1"); Ptext(L,"2"); Ptext(M,"3"); Ptext(N,"x")
# ptext e ptext2 non cancellano la parte sotto alla scritta e scrivono più grande
BF=7.5; HF=5 # I can change the dimensions
boxW(-70,70, -70,70) # This is the convenient scale [ or boxN ]
BOX() # I use BOX() to see the grid; then I repeat without BOX()
A=c(0,0); Ptext(A, "bicycle with\nchange gearing")
B=c(-30,7); Ptext(B,"movement")
C=c(-30,-7); Ptext(C,"information")
D=c(-48,4); Ptext(D,"man")
E=c(-48,-4); Ptext(E,"man")
F=c(30,4); Ptext(F,"movement")
x=c(-16,16,16,-16); y=c(-8,-8,8,8); polyC(x,y,"yellow") # [or spezzaC ]
ptext(A, "bicycle with\nchange gearing")
dart(-43,3.5, -16,3.5, 1); dart(-43,-3.5, -16,-3.5, 1)
dart(16,0, 43,0, 1)
#
CLEAN(-70,70, -70,70) # [ or CANCELLA ]
A=c(0,0); Ptext(A, "bicycle with\nchange gearing")
B=c(-30,7); Ptext(B,"movement")
C=c(-30,-7); Ptext(C,"information")
D=c(-48,4); Ptext(D,"man")
E=c(-48,-4); Ptext(E,"man")
F=c(30,4); Ptext(F,"movement")
x=c(-16,16,16,-16); y=c(-8,-8,8,8); polyC(x,y,"yellow")
ptext(A, "bicycle with\nchange gearing")
dart(-43,3.5, -16,3.5, 1); dart(-43,-3.5, -16,-3.5, 1) # [ or frec ]
dart(16,0, 43,0, 1)
boxW(-70,70, -70,70)
BOX()
A = c(0, 0); A1="multiples of 10"
B = c(-10,20); B1="multiples of 2"
C = c(10,-20); C1="multiples of 5"
ptext(B,B1); ptext(C,C1); ptext(A,A1)
xA=c(-30,30,30,-30); yA=c(-10,-10,10,10)
xB=c(-50,30,30,-50); yB=c(-10,-10,30,30)
xC=c(-30,50,50,-30); yC=c(-30,-30,10,10)
polyC(xB,yB, "yellow"); polyC(xC,yC, "green")
polyD(xA,yA, "pink") # polyD dashes the border
ptext(B,B1); ptext(C,C1); ptext(A,A1)
#
CLEAN(-70,70, -70,70)
polyC(xB,yB, "yellow"); polyC(xC,yC, "green")
polyD(xA,yA, "pink")
ptext(B,B1); ptext(C,C1); ptext(A,A1)