第四章 JS画图--画圆、椭圆

本文详细介绍了如何在HTML中利用JavaScript实现画圆和椭圆的方法,通过函数实现动态绘图,为网页增添交互性。

JavaScript代码:
 function drawOval(x, y, a, b){
  if(arguments.length == 3) {
   return drawOval(x, y, a, a);
  }
  var i, j;
  var tpos = [];
  var x1, x2, y1, y2;
  var html = "";
  for(i = 0; i <= a; i++){
   j = Math.floor(Math.sqrt(b*b - b*b*i*i/(a*a))+0.5);
   x1 = i+x;
   x2 = -i+x;
   y1 = j+y;
   y2 = -j+y;
   if(!tpos[x1*1000+y1])
   {
    drawPos(x1,y1);
    drawPos(x1,y2);
    drawPos(x2,y1);
    drawPos(x2,y2);
    tpos[x1*1000+y1] = true;
    }
   }
   for(i = 0; i <= b; i++)
   {
    j = Math.floor(Math.sqrt(a*a - a*a*i*i/(b*b))+0.5);
    x1 = j+x;
    x2 = -j+x;
    y1 = i+y;
    y2 = -i+y;
    if(!tpos[x1*1000+y1])
    {
     drawPos(x1,y1);
     drawPos(x1,y2);
     drawPos(x2,y1);
     drawPos(x2,y2);
     tpos[x1*1000+y1] = true;
     }
    }
    document.write(html);
    function drawPos(x, y)
    {
     html += " ";
    }
   }
  drawOval(200, 200, 100); // 圆
  drawOval(300, 300, 200, 100); // 椭圆
JavaScript代码讲解:
function drawOval(x, y, a, b){
  if(arguments.length == 3) {
   return drawOval(x, y, a, a);
  }
定义一个drawOval函数,四个参数x,y,a,b
如果传递给函数drawOval的参数数目是3,则返回drawOval(x,y,a,a)
  var i, j;
  var tpos = [];
  var x1, x2, y1, y2;
  var html = "";
定义一些变量i,j,x1,x2,y1,y2,html和一个数组tpos
  for(i = 0; i <= a; i++){
   j = Math.floor(Math.sqrt(b*b - b*b*i*i/(a*a))+0.5);
   x1 = i+x;
   x2 = -i+x;
   y1 = j+y;
   y2 = -j+y;
Math.floor(x):返回小于或等于x的最大整数
math.sqrt 返回指定数字的平方根
j = Math.floor(Math.sqrt(b*b - b*b*i*i/(a*a))+0.5);是用来计算圆周率
   if(!tpos[x1*1000+y1]){
    drawPos(x1,y1);
    drawPos(x1,y2);
    drawPos(x2,y1);
    drawPos(x2,y2);
    tpos[x1*1000+y1] = true;
    }
   }
通过数组来设置圆、椭圆在页面坐标
  document.write(html);打印html变量
  function drawPos(x, y){
   html += " ";
  }
 }
定义函数drawPos(x,y),x,y为页面标记,左边为x像素,顶头y像素
 drawOval(200, 200, 100); // 圆
 drawOval(300, 300, 200, 100); // 椭圆

圆:页面左边200px,顶头200px,半径100px

椭圆:页面左边200px,顶头200px,半径200px;高100px

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值