您的位置: jquery插件库 > jqueryhtml5→ bezierCurve-图表的起点-圆形

bezierCurve-图表的起点-圆形

资源来源网络,如果需要授权,请大家更换源码,模块仅供学习,下载后请2小时内删除,如需商用请购买正版授权 bezierCurve-图表的起点-圆形演示图片

HTML代码

<canvas id="c" width="1200" height="750"></canvas>

js代码

//uncomment lines 54/55/56 for different results
var b_canvas,
  contxt,
  dotCount = 400,
  lineWidth = .35,
   variance=600,
   layoutRadius = 400,  
  w = document.getElementById('c').width, h = document.getElementById('c').height,
  clr = "#fff",
  dotArray = [];
var angInc = 360/dotCount;
//
start();
//
function start() {
  b_canvas = document.getElementById("c");
  contxt = b_canvas.getContext("2d");
  contxt.lineWidth = lineWidth;
  contxt.strokeStyle = clr;
  contxt.fillStyle = "#000";
  initDots(); 
}


function initDots() {
  var dot;
  for (var i = 0; i < dotCount; i++) {
    dot = new Dot(
      i,
      layoutRadius * Math.cos((angInc *i) * (Math.PI/180))+ w/2,
      layoutRadius * Math.sin((angInc *i) * (Math.PI/180))+h/2
    )
    dotArray.push(dot)
  }
  drawDots();
}

function drawDots(){

  for(var i=0; i<dotArray.length; i++){
    itm = dotArray[i]; 
    contxt.beginPath();
    contxt.arc(itm.x, itm.y, 1, 0, Math.PI*2, true);
    contxt.fill();
  }
  connectDots();
}


function connectDots(){
  var lineCount = Math.floor(dotArray.length/2);
  //console.log("this is ", lineCount)
  for(var i=0; i<lineCount; i++){
    var num = lineCount+i;
   //var num = Math.floor(Math.random()*lineCount+ lineCount)
   // var num = 110; 
   var ptA = dotArray[i];
   var ptB = dotArray[num];
   // console.log("ddd ",ptA.x, ptB.x);        
    contxt.beginPath();
    contxt.moveTo(ptA.x, ptA.y);
     //contxt.lineTo(ptB.x, ptB.y);

  contxt.bezierCurveTo(Math.random()*variance,Math.random()*(Math.random()*variance),w/2,h/2.0,ptB.x,ptB.y);
    contxt.stroke();

  }
}

function Dot(i, x, y) {
  this.i = i;
  this.x = x;
  this.y = y;
}