Never been to TextSnippets before?

Snippets is a public source code repository. Easily build up your personal collection of code snippets, categorize them with tags / keywords, and share them with the world (or not, you can keep them private!)

graph library (See related posts)

// graph library
//   A library to implement graphic on JavaScript by Giovanni Nicco
//   Commands have  Java syntax
//
//
//                                
//   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()
var red='red';
var green='green';
var blue='blue';

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 drawImage(x,y,i) {
    document.writeln(''+x+'px; top:'+y+'px">'+i+'">');
}

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�
                deY=dy/npx;
                with(document){
                        while(i++<=npx){
                                write('' +x0+ '; top:' +y0+ '">.');
                                x0+=versox;y0+=deY
                        }
                }
        }
        else{ // tg > 45�
                deX=dx/npy;
                with(document){
                        while(i++<=npy){
                                write('' +x0+ '; top:' +y0+ '">.');
                                y0+=versoy;x0+=deX;
                        }
                }
         }
}

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 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 drawString(s,x,y){
        document.write('' +x+ 'px; top:' +y+ 'px">'+s+'');
}


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 fillOval(x,y,l,h){
        var rx=l/2; var ry=h/2;
        var xc=x+rx;var 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 fillRect(x,y,w,h,color){
        document.write(     '
'+ y+'; left:'+ x+'; width:'+w+ '; height:'+h+'; background-color: '+ color+' " >
' ) } function setColor(c){ document.write(''+c+'>'); } function setPoint(x,y){ document.write(' ' +x+ 'px; top:' +y+ 'px">. ' ); }

You need to create an account or log in to post comments to this site.