App下載

前端中怎么使用canvas繪制太極圖?繪制方法分享!

猿友 2021-08-03 17:57:47 瀏覽數(shù) (2420)
反饋

今天小編為大家?guī)?lái)的是有關(guān)于:“前端中怎么使用canvas繪制太極圖?”這個(gè)問(wèn)題,下面是小編整理的相關(guān)內(nèi)容和代碼希望對(duì)大家有所幫助!

css樣式代碼:

.animation{
  width: 800px;
  height: 800px;
  border: 1px solid #000;
}
#canvas{
  animation: rotate 6s linear infinite;  
}
/* 給太極圖設(shè)置旋轉(zhuǎn)動(dòng)畫 */
@keyframes rotate{
  0%{
    transform: none;
  }
  100%{
    transform: rotate(360deg);
  }
}

javascript代碼:

//文檔加載完畢后執(zhí)行函數(shù)
window.onload = function(){
  //獲取畫布對(duì)象
  var canvas = document.getElementById('canvas');
  //獲取上下文對(duì)象
  var context = canvas.getContext('2d');
  //圓開始路徑
  context.beginPath();
  //繪制最外層的大圓(黑色)
  context.arc(400, 400, 300, Math.PI / 180 * 0, Math.PI / 180 * 360);
  //將大圓填充為黑色
  context.fillStyle = '#000';
  context.fill();
  //繪制左半圓(白色)
  context.beginPath();
  context.arc(400, 400, 300, Math.PI / 180 * 90, Math.PI / 180 * 270);
  context.fillStyle = '#fff';
  context.fill(); 
  //繪制右半圓(黑色),會(huì)覆蓋外層大圓,顏色一樣。所以寫不寫都可以
  /* context.beginPath();
  context.arc(400, 400, 300, Math.PI / 180 * 270, Math.PI / 180 * 90);
  context.fillStyle = '#000';
  context.fill(); */
  //繪制左上半圓(黑色)
  context.beginPath();
  context.arc(400, 250, 150, Math.PI / 180 * 90, Math.PI / 180 * 270);
  context.fillStyle = '#000';
  context.fill(); 
  //繪制右下半圓(白色)
  context.beginPath();
  context.arc(400, 550, 150, Math.PI / 180 * 270, Math.PI / 180 * 90);
  context.fillStyle = '#fff';
  context.fill(); 
  //繪制左上小半圓(白色)
  context.beginPath();
  context.arc(400, 250, 35, Math.PI / 180 * 0, Math.PI / 180 * 360);
  context.fillStyle = '#fff';
  context.fill(); 
  //繪制右下小半圓(黑色)
  context.beginPath();
  context.arc(400, 550, 35, Math.PI / 180 * 0, Math.PI / 180 * 360);
  context.fillStyle = '#000';
  context.fill(); 
}

html代碼:

<div class="animation">
    <canvas id="canvas" width="800" height="800"></canvas>
  </div>

設(shè)置動(dòng)畫之后的太極圖效果

以上就是有關(guān)于:“前端中怎么使用canvas繪制太極圖?”這個(gè)問(wèn)題的解決方法,當(dāng)然了如果你覺得你有其他更好的方法也可以和大家一起分享你的做法,對(duì)于html5這方面有感興趣的小伙伴們可以在W3Cschool中學(xué)習(xí)新的知識(shí)和內(nèi)容! 


1 人點(diǎn)贊