当前位置: 代码迷 >> Web前端 >> 喂啊哪位高手会用代码画曲线
  详细解决方案

喂啊哪位高手会用代码画曲线

热度:167   发布时间:2012-12-23 11:28:15.0
喂啊,谁会用代码画曲线
<button   onclick= "testDrawCurve() "> 画曲线 </button> 
<button   onclick= "testDrawArc() "> 画弧线 </button> 
<button   onclick= "testDrawCircle() "> 画圆 </button> 
<button   onclick= "testDrawLine() "> 画线 </button> 
<button   onclick= "testDrawRectangle() "> 画矩形 </button> 
<button   onclick= "testDrawPie() "> 画饼图 </button> 
<div   id=div1> </div> 
<SCRIPT   LANGUAGE= "JavaScript "> 
<!-- 
function   testDrawCurve() 
{ 
div1.innerHTML   =   drawCurve(); 
} 
function   testDrawArc() 
{ 
div1.innerHTML   =drawArc(150,150,100,0,270, "blue ") 
} 
function   testDrawCircle() 
{ 
div1.innerHTML   =   drawCircle(200,200,150, "blue "); 
} 
function   drawCircle(x0,y0,radius,color) 
{ 
return   drawArc(x0,y0,radius,0,360,color) 
} 
function   testDrawLine() 
{ 
div1.innerHTML   =   drawLine(100,200,500,200, "yellow ")+drawLine(300,100,300,400, "black ")+drawLine(600,400,100,100, "violet ") 
} 
function   testDrawRectangle() 
{ 
div1.innerHTML   =   drawRectangle(200,100,600,200, "blue ")+drawRectangle(100,200,400,500, "red ") 
} 
function   testDrawPie() 
{ 
div1.innerHTML   =   drawPie(300,200,120,0,45, "red "); 
} 

function   drawLine(x0,y0,x1,y1,color) 
{ 
var   rs   =   " "; 
if   (y0   ==   y1)     //画横线 
{ 
if   (x0> x1){var   t=x0;x0=x1;x1=t}     
rs   =   " <span   style= 'top: "+y0+ ";left: "+x0+ ";position:absolute;font-size:1px;background-color: "+color+ ";height:1;   width: "+Math.abs(x1-x0)+ " '> </span> "; 
} 
else   if   (x0   ==   x1)     //画竖线 
{ 
if   (y0> y1){var   t=y0;y0=y1;y1=t}   
rs   =   " <span   style= 'top: "+y0+ ";left: "+x0+ ";position:absolute;font-size:1px;background-color: "+color+ ";width:1;height: "+Math.abs(y1-y0)+ " '> </span> "; 
} 
else 
{ 
var   lx   =   x1-x0 
var   ly   =   y1-y0 
var   l   =   Math.sqrt(lx*lx+ly*ly) 
rs   =   new   Array(); 
var   px,py,px0,py0,p; 
for   (var   i=0;i <l;i+=1) 
{ 
p   =   i/l; 
px   =   parseInt(x0   +   lx*p); 
py   =   parseInt(y0   +   ly*p); 
if   (px0!=px   ||   py0!=   py) 
rs[rs.length]   =   " <span   style= 'top: "+py+ ";left: "+px+ ";height:1;width:1;position:absolute;font-size:1px;background-color: "+color+ " '> </span> "; 
px0=px; 
py0=py; 
} 
rs   =   rs.join( " "); 
} 
return   rs 
} 
function   drawRectangle(x0,y0,x1,y1,color) 
{ 
x0=parseInt(x0); 
x1=parseInt(x1); 
y0=parseInt(y0); 
y1=parseInt(y1); 
if   (x0   ==   x1   ||   y0   ==   y1)   return; 
if   (x0> x1)   {var   t=x0;x0=x1;x1=t} 
if   (y0> y1)   {var   t=y0;y0=y1;y1=t} 
return   " <span   style= 'top: "+y0+ ";left: "+x0+ ";position:absolute;background-color= "+color+ ";   width: "+(x1-x0)+ "   ;height: "+(y1-y0)+ " '> </span> "; 
} 
function   drawPie(x0,y0,radius,startAngle,endAngle,color) 
{ 
var   rs   =   drawArc(x0,y0,radius,startAngle,endAngle,color) 
startAngle   =   startAngle/360*Math.PI*2; 
endAngle   =   endAngle/360*Math.PI*2; 
var   startx=Math.sin(startAngle)*radius+x0; 
var   endx=Math.sin(endAngle)*radius+x0; 
var   starty=Math.cos(startAngle)*radius+y0; 
var   endy=Math.cos(endAngle)*radius+y0; 
rs   +=   drawLine(x0,y0,startx,starty,color) 
rs   +=   drawLine(x0,y0,endx,endy,color) 
return   rs; 
} 
function   drawArc(x0,y0,radius,startAngle,endAngle,color) 
{ 
rs   =   new   Array(); 
tmpar   =   new   Array(); 
startAngle   =   startAngle/360*Math.PI*2; 
endAngle   =   endAngle/360*Math.PI*2; 
var   dx,dy,dx0,dy0; 
for   (var   i=startAngle;i <endAngle;i+=(1/radius)) 
{ 
dx   =   parseInt(Math.sin(i)*radius+x0); 
dy   =   parseInt(Math.cos(i)*radius+y0); 
if   (dx!=dx0   ||   dy!=dy0) 
rs[rs.length]   =   " <span   style= 'top: "+dy+ ";left: "+dx+ ";position:absolute;height:1;width:1;position:absolute;font-size:1px;background-color: "+color+ " '> </span> "; 
dx0=dx;dy0=dy; 
} 
return   (rs.join( " ")); 
} 
function   drawCurve() 
{ 
var   rs   =   new   Array(); 
for   (var   i=0;i <2*Math.PI;i+=.01) 
{ 
var   x   =   parseInt(300-Math.sin(i)*100) 
var   y   =   parseInt(300-Math.cos(i)*100) 
rs[rs.length]   =   " <span   style= 'top: "+x+ ";left: "+(i*100+90)+ "   ;height:1;width:1;position:absolute;font-size:1px;background-color:blue '> </span> "; 
rs[rs.length]   =   " <span   style= 'top: "+y+ ";left: "+(i*100+90)+ "   ;height:1;width:1;position:absolute;font-size:1px;background-color:blue '> </span> "; 
} 
return   rs.join( " "); 
} 
//--> 

想用代码做一条彩虹,学java的,理解有点慢,代码是神奇的,但是实在不会驾驭,我只会修修改改,百度了很多只找到个这个觉得好像还有点用,

?

?

?

但好像只有按钮啊,点又没反应,是不是用错浏览器了

  相关解决方案