gdsp

// //                                FUNZIONI: //   setColor(c); //   setPoint(x,y);drawLine(x0,y0,x1,y1); //   drawRect(x0,y0,l,h);fillRect(x0,y0,l,h){ //   drawOval(x,y,l,h);fillOval(x,y,l,h) //   drawArc(x,y,l,h,alpha0,alpha1);fillArc(x,y,l,h,alpha0,alpha1) //   drawString(s,x,y);puntone(x,y) //   drawimage(x,y,nomeFile)  //   drawRombo(x0,y0,a,b); //   dueQuadrati(x,y,la,lb) //   inputVettore2D() //   assiEgrid20per20(xc,yc)   //   debug() ;listato(funzione); i1n(n,istr) // //   tabulaFunzione(f,x0,x1,deltaX) //   tabella2x2(a1,a2,a3,a4) //   w(x);wln(x);nprompt // // //   tabella();nuovaRiga();nuovoDato(x);fineTabella() //   quadrato(x);cubo(x);quartaPotenza(x); //   radice(x) //   dimezza(x);doppio(x);triplo(x);quadruplo(x) //   somma(a,b) //   sin(x);cos(x);tan(x) //   sol(a,b,c)  function dueQuadrati(x,y,la,lb){ l=Math.max(la,lb); t=Math.min(la,lb); for (var i=x;i<=x+l;i=i+1) {punto(i,y)} for (var i=y;i<=y+l;i=i+1) {punto(x+l,i)} for (var i=x;i<=x+l;i=i+1) {punto(i,y+l)} for (var i=y;i<=y+l;i=i+1) {punto(x,i)} x1=x+(l-t)/2; y1=y+(l-t)/2; for (var i=x1;i<=x1+t;i=i+1) {punto(i,y1)} for (var i=y1;i<=y1+t;i=i+1) {punto(x1+t,i)} for (var i=x1;i<=x1+t;i=i+1) {punto(i,y1+t)} for (var i=y1;i<=y1+t;i=i+1) {punto(x1,i)} }        function drawimage(x,y,i) {     document.writeln('<SPAN STYLE="position:absolute; left:'+x+'px; top:'+y+'px"><img src="'+i+'"></SPAN>');   }  function inputVettore2D(){ // By Amateis per inserire un vettore (x,y)  c=new Array(2);  c[0]=prompt('Inserisci la x');  c[1]=prompt('Inserisci la y');  return c; }  function nprompt(x){// By Amateis: input di un numero  d=prompt(x);  return Number(d); }  function drawRombo(x0,y0,a,b){ // By Amateis Rombo diagonali a,b centro x0, y0  m=a/b;  for (var i=(x0-b/2);i<=x0;i=i+0.1){   y1=-m*(i-(x0-b/2))+y0;   punto(i,y1);   y2=m*(i-(x0-b/2))+y0;   punto(i,y2);  }  for (var i=x0;i<=(x0+b/2);i=i+0.1){   y3=m*(i-x0)+(y0-a/2);   punto(i,y3);   y4=-m*(i-x0)+(y0+a/2);   punto(i,y4);  } }   function fillRect(x0,y0,l,h){ if(l<0){l=-l;x0=x0-l;} if(h<0){h=-h;y0=y0-h;} x0=Math.floor(x0);y0=Math.floor(y0); l=Math.ceil(l);h=Math.ceil(h);  for(var x=x0;x<=x0+l;x++){ for(var y=y0;y<=y0+h;y++){ document.write('<SPAN STYLE="position:absolute; left:' +x+ '; top:' +y+ '">.</SPAN>'); } } }  function fillOval(x,y,l,h){ rx=l/2;ry=h/2; xc=x+rx;yc=y+ry for(var xx=x+l;xx>=-x;xx--){ alpha=Math.acos((xx-x)/l) drawLine(xc+rx*Math.cos(alpha),yc-ry*Math.sin(alpha),xc+rx*Math.cos(-alpha),yc-ry*Math.sin(-alpha)); } }  function fillArc(x,y,l,h,alpha0,alpha1){ rx=l/2;ry=h/2; xc=x+rx;yc=y+ry da=Math.PI/180 for(var alpha=alpha0;alpha<=alpha1;alpha+=da){ drawLine(xc,yc,xc+rx*Math.cos(alpha+da),yc-ry*Math.sin(alpha+da)); } } function drawArc(x,y,l,h,alpha0,alpha1){ rx=l/2;ry=h/2; xc=x+rx;yc=y+ry da=Math.PI/360 for(var alpha=alpha0;alpha<=alpha1;alpha+=da){ drawLine(xc+rx*Math.cos(alpha),yc-ry*Math.sin(alpha),xc+rx*Math.cos(alpha+da),yc-ry*Math.sin(alpha+da)); } } function drawOval(x,y,l,h){ rx=l/2;ry=h/2; xc=x+rx;yc=y+ry da=Math.PI/360 for(var alpha=0;alpha<=6.29;alpha+=da){ drawLine(xc+rx*Math.cos(alpha),yc- ry*Math.sin(alpha),xc+rx*Math.cos(alpha+da),yc- ry*Math.sin(alpha+da)); } }  function punto(x,y){ // By Nicco: Fa un puntino in coordinate x,y  (Obsoleta) w('  <SPAN STYLE="position:absolute; left:' +x+ 'px; top:' +y+ 'px">.</SPAN> ' ); } function setPoint(x,y){ // By Nicco:Fa un puntino in coordinate x,y  (In futuro restera' solo questa) w('  <SPAN STYLE="position:absolute; left:' +x+ 'px; top:' +y+ 'px">.</SPAN> ' ); } function tabulaFunzione(f,x0,x1,deltaX) { //By Gamba         document.writeln('<table border=1>'); document.writeln('<tr><td>'+'x'+'<td>'+f);         for(var x=x0;x<=x1;x+=deltaX){             document.writeln('<tr><td>'+x+'<td>'+eval  (f));             }         document.writeln('</table>')         }  function setColor(c){ document.write('<font color='+c+'>'); }  function drawRect(x0,y0,l,h){ x0=Math.floor(x0);y0=Math.floor(y0); l=Math.ceil(l);h=Math.ceil(h); drawLine(x0,y0,x0+l,y0); drawLine(x0,y0,x0,y0+h); drawLine(x0+l,y0+h,x0+l,y0); drawLine(x0+l,y0+h,x0,y0+h); }  function drawLine(x0,y0,x1,y1){ dx=x1-x0;dy=y1-y0; if(y1>=y0){versoy=1}else{versoy=-1} if(x1>=x0){versox=1}else{versox=-1} npx=Math.abs(dx);npy=Math.abs(dy); var i=0; if( dx*dx >= dy*dy){ // tg <= 45 gradi deY=dy/npx; with(document){ while(i++<=npx){ write( '<SPAN STYLE="position:absolute; left:' +x0 + '; top:' +y0+ '">.</SPAN>'); x0+=versox;y0+=deY } } } else{ // tg > 45 gradi deX=dx/npy; with(document){ while(i++<=npy){ write( '<SPAN STYLE="position:absolute; left:' +x0 + '; top:' +y0+ '">.</SPAN>'); y0+=versoy;x0+=deX;         }         }          } }   function debug() {// By Nicco:Apre una finestra nella quale si possono lanciare istruzioni javascript (utile se si vogliono provare le nuove funzioni o se si vuol vedere lo stato delle variabili)       query=' ';     while (query !="exit"){         query=prompt('"exit" per uscire',"");        if(query!="exit")eval(query);     }    } function drawString(s,x,y){ document.write( '<SPAN STYLE="position:absolute; left:' +x + 'px; top:' +y+ 'px">'+s+'</SPAN>'); }  // ------------- Utilities Stampa ------------------- // By Polistina :  Stampa x (per non scrivere ogni volta document.writeln(x) )   function w(x){document.writeln(x)} function wln(x){w(x+'<br>')}// By Lopiano e Banfo:Stampa x e va a capo   // ------------- Gestione Tabelle ------------------ function tabella()    { w('<TABLE BORDER="1">') }   // By Contotti: Apre un ambiente tabella function nuovaRiga(){ w('<Tr>') }  // By Cordiano function nuovoDato(x){ w('<Td>'+x) }  // By Cordiano function fineTabella(){ w('</TABLE>') }  // By Contotti  //------------------ Matematiche ------------------ function quartaPotenza(x){return(x*x*x*x)}// By Mazza function cubo(x){return(x*x*x)} // By Marotta function quadrato(x){return(x*x)} // By Cantoro function radice(x){return Math.sqrt(x);}// By Gaiardo function dimezza(x){return(x/2)} // By Zuppa function doppio(x){return (x*2)} // By Picco  function triplo(x){return (x*4)} // By Goy  function quadruplo(x){return (x*4)} // By Volpe(restituisce il quadruplo dell'argomento) function decuplo(x){return (x*10)} // By Goy  function somma(a,b){ return Number(Number(a)+Number(b))} // By Napolitano function sin(x){return Math.sin(x)} // By Cavalieri function cos(x){return Math.cos(x)} // By Cavalieri function tan(x){return Math.tan(x)} // By Cavalieri  function sol(a,b,c){// By Campa:  v = new Array([3]) d= b*b-4*a*c; if(d < 0){v[0]=v[1]=v[2]=0} if(d == 0){           v[0]=v[1]= (-b+radice(d))  / (2*a);           v[2]=1          } if(d > 0){            v[0]=(-b+radice(d))/(2*a);            v[1]=(-b-radice(d))/(2*a);            v[2]=2;         } return v; }  function i1n(n,istr){ // By Nicco  for(var i=1;i<=n;i++){eval(istr)} }  function listato(f){ w('<XMP>'+f.toString()+'</X'+'MP>' ); }  function puntone(x,y){ w('  <SPAN STYLE="position:absolute; left:' +x+ 'px; top:' +y+ 'px">*</SPAN> ' ); } function puntoColorato (x,y,c){  w('  <SPAN STYLE="position:absolute; left:' +x+ 'px; top:' +y+ 'px"><font color='+c+'>.</font> </SPAN> ' ); }  function tabella2x2(a1,a2,a3,a4){  // by Zuppa tabella(); nuovaRiga();nuovoDato(a1);nuovoDato(a2); nuovaRiga();nuovoDato(a3);nuovoDato(a4); fineTabella(); } function assiEgrid20per20(xc,yc){  for(var y=-10;y<=10;y+=1){ // linee orizzontali for(var x=xc-100;x<=xc+100;x+=1){ puntoColorato(x,yc-y*10,"green"); } } for(var x=-10;x<=10;x+=1){//linee verticali  for(var y=yc-100;y<=yc+100;y+=1){ puntoColorato(xc+x*10,y,"green"); } } for(var x=xc-100;x<=xc+100;x+=1){ // asse X puntoColorato(x,yc,"black"); } for(var y=yc-100;y<=yc+100;y+=1){// asse Y puntoColorato(xc,y,"black"); }  for(var x=-10;x<=10;x+=1){ // linette verticali sull'asse  X puntoColorato(xc+x*10,yc-2,"blue"); puntoColorato(xc+x*10,yc-1,"blue"); puntoColorato(xc+x*10,yc-0,"blue"); puntoColorato(xc+x*10,yc+1,"blue"); puntoColorato(xc+x*10,yc+2,"blue"); } for(var y=-10;y<=10;y+=1){ // linette orizzontali sull'asse  y puntoColorato(xc-2,yc-y*10,"blue"); puntoColorato(xc-1,yc-y*10,"blue"); puntoColorato(xc,yc-y*10,"blue"); puntoColorato(xc+1,yc-y*10,"blue"); puntoColorato(xc+2,yc-y*10,"blue"); }  }  //COSTANTI: var PIGRECO=Math.PI; var PIGRECOMEZZI=(Math.PI)/2; INFINITO =1/0; //.............................................................................................    //                    F u n c t i o n s                              // //   drawArc(x,y,l,h,alpha0,alpha1): draw an arc of oval from alpha0 to alpha1 (radians) //   drawImage(x,y,fileName) : draws an image (fileName) in x,y  //   drawOval(x,y,width,heigth): draw an oval (or circle) (use last setColor color) //   drawLine(x0,y0,x1,y1): draws a line from x0,y0 to x1,y1 //   drawRect(x0,y0,width,heigth): draws a rectangle //   drawString(s,x,y): draws a strings s in x,y //   fillArc(x,y,l,h,alpha0,alpha1): draw a filled arc of oval from alpha0 to alpha1 (radians) //   fillRect(x0,y0,width,heigth,color): draw a filled rectangle (need color) //   fillOval(x,y,width,heigth): draw a filled oval (or circle) (use last setColor color) //   setColor(c); sets the color of next figures to be c (unsetted color is black) //   setPoint(x,y); draw a point in x,y (black or of the color setted by setColor() // // //.............................................................................................   // test drawArc document.write('<font size=2>') setColor('blue');drawArc(150,150,40,40,2.9,6.28+0.5) setColor('black');document.write('<font size=2>') drawString("drawArc(150,150,40,40,2.9,6.28+0.5)",150,210)  // test drawImage drawImage(400,200,'smile.gif');drawString("drawImage(400,200,'smile.gif')",400,185)   // test drawOval drawOval(100,100,50,15); drawString("drawOval(100,100,15,15);",100,95)  // test drawLine var x1=300-20; var x2=300; var x3=300+20; var y1=300-40; var y2=300-20; var y3=300+20; drawLine(x1,y3,x1,y2); drawLine(x1,y2,x2,y1); drawLine(x2,y1,x3,y2); drawLine(x3,y2,x1,y3); drawLine(x1,y3,x3,y3); drawLine(x3,y3,x1,y2); drawLine(x1,y2,x3,y2); drawLine(x3,y2,x3,y3); drawString("drawLine(280,320,280,280); ",x1+50,x2) drawString("drawLine(280,280,300,260); ",x1+50,x2+20) drawString(".......etc... ",x1+50,x2+40)  // drawString drawString("<i><b>Hello!</i></b>",500,50) drawString("drawString( '&lt;i&gt;&lt;b&gt;Hello!&lt;/i&gt;&lt;/b&gt;',500,50 )",510,70)  // test drawRect setColor('blue') drawRect(200,400,35,55);setColor('Black') drawString("setColor('blue');drawRect(200,400,35,55)",200,400+70)  // text fillArc setColor('green');fillArc(150,150,40,40,0.5,2.9) setColor('black') drawString("setColor('green');fillArc(150,150,40,40,0.5,2.9)",150,150)   // test fillRect fillRect(300,400,30,50,'red');drawString("fillRect(300,400,30,50,'red')",300,400)  // test fillOval fillOval(100,300,10,30);drawString("fillOval(100,300,10,30)",100,290)  // test setPoint setColor('red') drawLine(500,400,700,400); drawLine(600,320,600,450); document.write('<font size=1 color=blue>') for(var x=-10;x<=10;x+=0.05){ setPoint(600+x*10,400-(Math.sin(x*3)/(x*3))*50 ) } document.write('<font size=1 color=black>') var xx=700,yy=350 drawString("drawLine(500,400,700,400);",xx,yy);yy+=20 drawString("drawLine(600,320,600,450);",xx,yy);yy+=20 drawString("for(var x=-10;x<=10;x+=0.05){",xx,yy);yy+=20 drawString("&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; setPoint(600+x*10,400-(Math.sin(x*3)/(x*3))*50 )",xx,yy);yy+=20 drawString("}",xx,yy);yy+=20  // Presentation fillRect(5,20,450,70,'red'); fillRect(7,22,446,66,'black'); fillRect(9,24,442,62,'yellow'); drawString("<b>A JavaScript library by Giovanni Nicco",150,30-3) drawString("for use graphic in your web pages",150,50-3) drawString("<font color=red>( see HTML code: it's for free!! )</font></b>",150,70-3) drawString("<font color=blue size=6>gngraph:</font>",10,30)     //