var M = {
co : function(x) {
return Math.cos(2*Math.PI*x);
}
,
prime : function() {
var s = 'rgba(220,220,220,1)';
var t = 'rgba(180,180,180,1)';
var n = 120;
var u = 5;
var m = 20;
var i,j,k;
var a = new Array();
for(i=0; i<=n; i++) {
Q.add(m+u*i,m);
Q.add(m+u*i,m+u*n);
if(i%12) Q.draw(1,s,'line');
else Q.draw(1,t,'line');
}
for(j=0; j<=n; j++) {
Q.add(m ,m+u*j);
Q.add(m+u*n,m+u*j);
Q.draw(1,s,'line');
}
Q.add(m ,m+2*u);
Q.add(m+u*n,m+2*u);
Q.draw(1,t,'line');
for(j=1; j<=n; j++) a[j] = 0;
for(i=1; i<=n; i++) {
for(j=i; j<=n; j+=i) {
Q.c.beginPath();
Q.c.arc(m+j*u,m+(n-i)*u,2,0,2*Math.PI,false);
Q.c.fillStyle = 'rgba(0,0,0,1)';
Q.c.fill();
a[j]++;
}
}
for(j=1; j<=n; j++) {
Q.c.beginPath();
Q.c.arc(m+j*u,m+a[j]*u,2,0,2*Math.PI,false);
Q.c.fillStyle = 'rgba(255,0,0,1)';
Q.c.fill();
}
for(i=3; i<=n; i++) {
k = 1;
for(j=2; j<=i-1; j++) {
k *= (Math.cos(2*Math.PI*i/j-Math.PI)+1)*j;
}
k = Math.round(k);
Q.c.beginPath();
Q.c.arc(m+i*u,m+k,2,0,2*Math.PI,false);
Q.c.fillStyle = 'rgba(0,0,255,1)';
Q.c.fill();
}
}
,
prime2 : function() {
var s = 'rgba(220,220,220,1)';
var n = 10;
var u = 100;
var m = 20;
var h = 600;
var b =2;
var i,j,k;
var a = new Array();
for(i=0; i<=n; i++) {
Q.add(m+u*i,m);
Q.add(m+u*i,m+h);
Q.draw(1,s,'line');
}
for(j=0; j<=h; j+=u) {
Q.add(m ,m+j);
Q.add(m+u*n,m+j);
Q.draw(1,s,'line');
}
Q.c.beginPath();
Q.c.arc(m+2*u,m+h-u,3,0,2*Math.PI,false);
Q.c.fillStyle = 'rgba(0,0,0,1)';
Q.c.fill();
Q.c.beginPath();
Q.c.arc(m+3*u,m+h-u,3,0,2*Math.PI,false);
Q.c.fillStyle = 'rgba(0,0,0,1)';
Q.c.fill();
Q.c.beginPath();
Q.c.arc(m+5*u,m+h-u,3,0,2*Math.PI,false);
Q.c.fillStyle = 'rgba(0,0,0,1)';
Q.c.fill();
Q.c.beginPath();
Q.c.arc(m+7*u,m+h-u,3,0,2*Math.PI,false);
Q.c.fillStyle = 'rgba(0,0,0,1)';
Q.c.fill();
// graph 1/x
for(i=10; i<=n*u; i++) {
x = m+i;
y = m+h-u-1/(i/u)*u;
if(y>=m && y<=m+h) Q.add(x,y);
}
Q.draw(1,'rgba(0,0,0,1)','line');
// graph ln(x)
for(i=5; i<=n*u; i++) {
x = m+i;
y = m+h-u-Math.log(i/u)/Math.log(b)*u;
if(y>=m && y<=m+h) Q.add(x,y);
if((y-m)%u==0) {
Q.c.beginPath();
Q.c.arc(x,y,3,0,2*Math.PI,false);
Q.c.fillStyle = 'rgba(255,0,0,1)';
Q.c.fill();
}
}
Q.draw(1,'rgba(0,0,0,1)','line');
// graph co(x)
for(i=0; i<=n*u; i++) {
x = m+i;
y = m+h-u+M.co(i/u)*u-u;
if(y>=m && y<=m+h) Q.add(x,y);
}
Q.draw(1,'rgba(0,0,0,1)','line');
for(i=0; i<=n*u; i++) {
x = m+i;
y = m+h-u+M.co(i/u/2)*u-u;
if(y>=m && y<=m+h) Q.add(x,y);
}
Q.draw(1,'rgba(255,0,0,1)','line');
for(i=0; i<=n*u; i++) {
x = m+i;
y = m+h-u+M.co(i/u/3)*u-u;
if(y>=m && y<=m+h) Q.add(x,y);
}
Q.draw(1,'rgba(255,140,0,1)','line');
for(i=0; i<=n*u; i++) {
x = m+i;
y = m+h-u+M.co(i/u/4)*u-u;
if(y>=m && y<=m+h) Q.add(x,y);
}
Q.draw(1,'rgba(0,128,0,1)','line');
for(i=0; i<=n*u; i++) {
x = m+i;
y = m+h-u+M.co(i/u/5)*u-u;
if(y>=m && y<=m+h) Q.add(x,y);
}
Q.draw(1,'rgba(50,205,50,1)','line');
for(i=0; i<=n*u; i++) {
x = m+i;
y = m+h-u+M.co(i/u/6)*u-u;
if(y>=m && y<=m+h) Q.add(x,y);
}
Q.draw(1,'rgba(0,0,255,1)','line');
for(i=0; i<=n*u; i++) {
x = m+i;
y = m+h-u+M.co(i/u/7)*u-u;
if(y>=m && y<=m+h) Q.add(x,y);
}
Q.draw(1,'rgba(30,144,255,1)','line');
for(i=0; i<=n*u; i++) {
x = m+i;
y = m+h-u+M.co(i/u/8)*u-u;
if(y>=m && y<=m+h) Q.add(x,y);
}
Q.draw(1,'rgba(255,0,255,1)','line');
for(i=0; i<=n*u; i++) {
x = m+i;
y = m+h-u+M.co(i/u/9)*u-u;
if(y>=m && y<=m+h) Q.add(x,y);
}
Q.draw(1,'rgba(220,20,60,1)','line');
for(i=0; i<=n*u; i++) {
x = m+i;
y = m+h-u+M.co(i/u/10)*u-u;
if(y>=m && y<=m+h) Q.add(x,y);
}
Q.draw(1,'rgba(0,139,139,1)','line');
// sum
for(i=10; i<=n*u; i+=10) {
x = m+i;
y = m+h-u;
k = Math.round(i/10);
for(j=1; j<=k; j++) {
y -= M.co(i/10/j)*100;
}
if(y>=m && y<=m+h) Q.add(x,y);
}
Q.draw(2,'rgba(192,192,192,0)','line');
}
,
si : function(x) {
return Math.sin(2*Math.PI*x);
}
,
triginverse : function() {
var b,c,i,j,k,x,y;
var l1 = 350;
var l2 = 200;
var l3 = 30;
var l4 = 550;
var d = 10;
var c1 = 'rgba(0,0,0,1)';
var c2 = 'rgba(128,128,128,1)';
var c3 = 'rgba(230,230,230,1)';
var c4 = 'rgba(245,245,245,1)';
var c5 = 'rgba(192,192,192,1)';
// axes
Q.add(l3 ,l3+l1);
Q.add(l3+l2+l4,l3+l1);
Q.draw(1,c2,'line',15,10,0,0,0);
Q.add(l3+l2,l3+l2+l1);
Q.add(l3+l2,l3);
Q.draw(1,c2,'line',15,10,0,0,0);
b = Math.round((-Math.PI/2)*100);
Q.add(l3+l2+b,l3+l1+l2);
Q.add(l3+l2+b,l3);
Q.draw(1,c3,'line',0,0,0,0,0);
b = Math.round((1*Math.PI/2)*100);
Q.add(l3+l2+b,l3+l1+l2);
Q.add(l3+l2+b,l3);
Q.draw(1,c3,'line',0,0,0,0,0);
b = Math.round((2*Math.PI/2)*100);
Q.add(l3+l2+b,l3+l1+l2);
Q.add(l3+l2+b,l3);
Q.draw(1,c3,'line',0,0,0,0,0);
b = Math.round((3*Math.PI/2)*100);
Q.add(l3+l2+b,l3+l1+l2);
Q.add(l3+l2+b,l3);
Q.draw(1,c3,'line',0,0,0,0,0);
b = -100;
Q.add(l3+l2+b,l3+l1+l2);
Q.add(l3+l2+b,l3);
Q.draw(1,c3,'line',0,0,0,0,0);
b = 100;
Q.add(l3+l2+b,l3+l1+l2);
Q.add(l3+l2+b,l3);
Q.draw(1,c3,'line',0,0,0,0,0);
b = Math.round((-Math.PI/2)*100);
Q.add(l3,l3+l1-b);
Q.add(l3+l2+l4,l3+l1-b);
Q.draw(1,c3,'line',0,0,0,0,0);
b = Math.round((1*Math.PI/2)*100);
Q.add(l3,l3+l1-b);
Q.add(l3+l2+l4,l3+l1-b);
Q.draw(1,c3,'line',0,0,0,0,0);
b = Math.round((2*Math.PI/2)*100);
Q.add(l3,l3+l1-b);
Q.add(l3+l2+l4,l3+l1-b);
Q.draw(1,c3,'line',0,0,0,0,0);
b = -100;
Q.add(l3,l3+l1-b);
Q.add(l3+l2+l4,l3+l1-b);
Q.draw(1,c3,'line',0,0,0,0,0);
b = 100;
Q.add(l3,l3+l1-b);
Q.add(l3+l2+l4,l3+l1-b);
Q.draw(1,c3,'line',0,0,0,0,0);
// sine ----------------------------------------
c = Math.round((-Math.PI/2)*100);
for(i=-l2; i<=c; i++) {
x = l3+l2+i;
y = l3+l1-Math.sin(i/100)*100;
Q.add(x,y);
}
Q.draw(1,'rgba(255,140,0,1)','curve',0,0,0,0,0);
b = Math.round((-Math.PI/2)*100);
c = Math.round((Math.PI/2)*100);
for(i=b; i<=c; i++) {
x = l3+l2+i;
y = l3+l1-Math.sin(i/100)*100;
if(y<l3+l2+l1 && y>l3) Q.add(x,y);
}
Q.draw(2,'rgba(255,140,0,1)','curve',0,0,5,2,0);
b = Math.round((Math.PI/2)*100);
for(i=b; i<=l4; i++) {
x = l3+l2+i;
y = l3+l1-Math.sin(i/100)*100;
Q.add(x,y);
}
Q.draw(1,'rgba(255,140,0,1)','curve',0,0,0,0,0);
// consine -------------------------------------
for(i=-l2; i<=0; i++) {
x = l3+l2+i;
y = l3+l1-Math.cos(i/100)*100;
Q.add(x,y);
}
Q.draw(1,'rgba(30,144,255,1)','curve',0,0,0,0,0);
b = 0;
c = Math.round((2*Math.PI/2)*100);
for(i=b; i<=c; i++) {
x = l3+l2+i;
y = l3+l1-Math.cos(i/100)*100;
if(y<l3+l2+l1 && y>l3) Q.add(x,y);
}
Q.draw(2,'rgba(30,144,255,1)','curve',0,0,5,2,0);
b = Math.round((2*Math.PI/2)*100);
for(i=b; i<=l4; i++) {
x = l3+l2+i;
y = l3+l1-Math.cos(i/100)*100;
Q.add(x,y);
}
Q.draw(1,'rgba(30,144,255,1)','curve',0,0,0,0,0);
b = -100;
c = 100;
for(i=b; i<=c; i++) {
x = l3+l2+i;
y = l3+l1-Math.acos(i/100)*100;
if(y<l3+l2+l1 && y>l3) Q.add(x,y);
}
Q.draw(2,'rgba(0,0,255,1)','curve',0,0,0,0,0);
// tangent -------------------------------------
b = -l2;
c = Math.round((-Math.PI/2-1/10)*100);
for(i=b; i<=c; i++) {
x = l3+l2+i;
y = l3+l1-Math.tan(i/100)*100;
if(y<l3+l2+l1 && y>l3) Q.add(x,y);
}
Q.draw(1,'rgba(50,205,50,1)','curve',0,0,0,0,0);
b = Math.round((-Math.PI/2+1/10)*100);
c = Math.round(( Math.PI/2-1/10)*100);
for(i=b; i<=c; i++) {
x = l3+l2+i;
y = l3+l1-Math.tan(i/100)*100;
if(y<l3+l2+l1 && y>l3) Q.add(x,y);
}
Q.draw(2,'rgba(50,205,50,1)','curve',0,0,5,2,0);
b = Math.round(( Math.PI/2+1/10)*100);
c = Math.round((3*Math.PI/2-1/10)*100);
for(i=b; i<=c; i++) {
x = l3+l2+i;
y = l3+l1-Math.tan(i/100)*100;
if(y<l3+l2+l1 && y>l3) Q.add(x,y);
}
Q.draw(1,'rgba(50,205,50,1)','curve',0,0,0,0,0);
b = Math.round((3*Math.PI/2+1/10)*100);
c = l4;
for(i=b; i<=c; i++) {
x = l3+l2+i;
y = l3+l1-Math.tan(i/100)*100;
if(y<l3+l2+l1 && y>l3) Q.add(x,y);
}
Q.draw(1,'rgba(50,205,50,1)','curve',0,0,0,0,0);
b = -l2;
c = l4;
for(i=b; i<=c; i++) {
x = l3+l2+i;
y = l3+l1-Math.atan(i/100)*100;
if(y<l3+l2+l1 && y>l3) Q.add(x,y);
}
Q.draw(2,'rgba(0,128,0,1)','curve',0,0,0,0,0);
// arcsine
b = -100;
c = 100;
for(i=b; i<=c; i++) {
x = l3+l2+i;
y = l3+l1-Math.asin(i/100)*100;
if(y<l3+l2+l1 && y>l3) Q.add(x,y);
}
Q.draw(2,'rgba(255,0,0,1)','curve',0,0,0,0,0);
}
} |