#
# 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)