中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

html5怎么實現波浪效果圖

發布時間:2022-03-11 16:41:33 來源:億速云 閱讀:161 作者:iii 欄目:web開發

這篇文章主要介紹了html5怎么實現波浪效果圖的相關知識,內容詳細易懂,操作簡單快捷,具有一定借鑒價值,相信大家閱讀完這篇html5怎么實現波浪效果圖文章都會有所收獲,下面我們一起來看看吧。

  先畫個最作一新求抖直微圈簡單的圓

  var ctx = document.getElementById('myCanvas').getContext('2d');

  ctx.lineWidth = 1;

  ctx.strokeStyle = "orange";

  ctx.arc(100,100,90,0,2*Math.PI,false);

  ctx.stroke();

  在圓內上下滾遇新是直朋能到分覽動的線

  var ctx = document.getElementById('myCanvas').getContext('2d');

  var y = 100;

  var flag = 0;

  function init(){

  //清空canvas

  ctx.clearRect(0,0,200,200);

  //計算在左半圓上隨著y值上下移動,對應的x值

  // var y = 30;

  var expression = 8100 - Math.pow((100-y),2);

  var x = 100 - Math.sqrt(expression) ;

  ctx.beginPath();

  ctx.lineWidth = 1;

  ctx.strokeStyle = "orange";

  ctx.arc(100,100,90,0,2*Math.PI,false);

  ctx.stroke();

  ctx.lineWidth = 1;

  ctx.strokeStyle = "green";

  ctx.beginPath();

  ctx.moveTo(x,y);

  ctx.lineTo(200-x, y);

  ctx.stroke();

  if (flag == 0) {

  y += 1;

  if(y == 130){

  flag = 1;

  }

  }else{

  y -= 1;

  if (y == 70) {

  flag = 0;

  }

  }

  window.requestAnimationFrame(init);

  }

  模擬水在整中比需抖接朋功要朋插個球內起伏

  var ctx = document.getElementById('myCanvas').getContext('2d');

  var y = 100;

  var flag = 0;

  function init(){

  //清空canvas

  ctx.clearRect(0,0,200,200);

  //計算在左半圓上隨著y值上下移動,對應的x值

  var expression = 8100 - Math.pow((100-y),2);

  var x = 100 - Math.sqrt(expression) ;

  ctx.lineWidth = 1;

  ctx.strokeStyle = "green";

  ctx.beginPath();

  ctx.moveTo(x,y);

  ctx.lineTo(200-x, y);

  ctx.stroke();

  //計算圓起始點(與X軸平行的直徑的右側端點)與圓左側給定Y坐標的點

  var distance = Math.sqrt(Math.pow((190-x),2)+Math.pow((100-y),2));

  //sina=d/2r a為夾角的一半 2a為兩點的圓心角 Math.asin最終結果為弧度 如asin(1)=1/2*PI

  var angle = Math.asin(distance/180)*2;

  ctx.beginPath();

  if(y<100){

  angle = 2*Math.PI - angle;

  }

  ctx.arc(100,100,90,Math.PI-angle,angle,false);

  ctx.stroke();

  if (flag == 0) {

  y += 1;

  if(y == 150){

  flag = 1;

  }

  }else{

  y -= 1;

  if (y == 50) {

  flag = 0;

  }

  }

  window.requestAnimationFrame(init);

  }

  模擬球兩邊的起伏不同比抖朋要插支一圈不者地步

  var ctx = document.getElementById('myCanvas').getContext('2d');

  var step = 0;

  function init(){

  //清空canvas

  ctx.clearRect(0,0,200,200);

  step++;

  //轉化為弧度

  var stepAngle = step*Math.PI/180;

  var deltaHeight = Math.sin(stepAngle)*30;

  var deltaHeightRight = Math.cos(stepAngle)*30;

  var y = 100 + deltaHeight;

  //計算在左半圓上隨著y值上下移動,對應的x值

  var expression = 8100 - Math.pow((100-y),2);

  var x = 100 - Math.sqrt(expression) ;

  var rightY = 100 + deltaHeightRight;

  var expressionRight = 8100 - Math.pow((100-rightY),2);

  //取右側的X坐標(同一個y值會有兩個x坐標)

  var rightX = 200 - (100 - Math.sqrt(expressionRight));

  // alert("rightX:"+rightX+" rightY:"+rightY+" x:"+x+" y:"+y);

  ctx.lineWidth = 1;

  ctx.strokeStyle = "green";

  ctx.fillStyle = "green";

  ctx.beginPath();

  ctx.moveTo(x,y);

  ctx.lineTo(rightX, rightY);

  ctx.stroke();

  //計算圓起始點(與X軸平行的直徑的右側端點)與圓左側給定Y坐標的點

  var distance = Math.sqrt(Math.pow((190-x),2)+Math.pow((100-y),2));

  //sina=d/2r a為夾角的一半 2a為兩點的圓心角 Math.asin最終結果為弧度 如asin(1)=1/2*PI

  var angle = Math.asin(distance/180)*2;

  var distanceRight = Math.sqrt(Math.pow((190-rightX),2)+Math.pow((100-rightY),2));

  var angleRight = Math.asin(distanceRight/180)*2;

  ctx.beginPath();

  //如果在左側上半圓則用2PI-弧度

  if(y<100){

  angle = 2*Math.PI - angle;

  }

  if(rightY < 100){

  angleRight = -angleRight;

  }

  ctx.arc(100,100,90,angleRight,angle,false);

  ctx.stroke();

  // ctx.fill();

  window.requestAnimationFrame(init);

  }

  把起伏的直朋不功事做時次功好來多這開制的請一例農在線改成曲線(見開頭的效果圖是能覽調不頁新代些事幾求事都時學下是事)

  var ctx = document.getElementById('myCanvas').getContext('2d');

  var step = 0;

  function init(){

  //清空canvas

  ctx.clearRect(0,0,200,200);

  step+=3;

  //轉化為弧度

  var stepAngle = step*Math.PI/180;

  var deltaHeight = Math.sin(stepAngle)*20;

  var deltaHeightRight = Math.cos(stepAngle)*20;

  var y = 100 + deltaHeight;

  //計算在左半圓上隨著y值上下移動,對應的x值

  var expression = 8100 - Math.pow((100-y),2);

  var x = 100 - Math.sqrt(expression) ;

  var rightY = 100 + deltaHeightRight;

  var expressionRight = 8100 - Math.pow((100-rightY),2);

  //取右側的X坐標(同一個y值會有兩個x坐標)

  var rightX = 200 - (100 - Math.sqrt(expressionRight));

  // alert("rightX:"+rightX+" rightY:"+rightY+" x:"+x+" y:"+y);

  ctx.lineWidth = 5;

  ctx.strokeStyle = "green";

  ctx.beginPath();

  ctx.arc(100,100,90,0,Math.PI*2,false);

  ctx.stroke();

  // ctx.fillStyle = "green";

  ctx.fillStyle = "rgba(0,222,255, 0.2)";

  ctx.beginPath();

  ctx.moveTo(x,y);

  // ctx.lineTo(rightX, rightY);

  ctx.bezierCurveTo(100, y-30, 100, rightY-30, rightX,rightY);

  // ctx.stroke();

  //計算圓起始點(與X軸平行的直徑的右側端點)與圓左側給定Y坐標的點

  var distance = Math.sqrt(Math.pow((190-x),2)+Math.pow((100-y),2));

  //sina=d/2r a為夾角的一半 2a為兩點的圓心角 Math.asin最終結果為弧度 如asin(1)=1/2*PI

  var angle = Math.asin(distance/180)*2;

  var distanceRight = Math.sqrt(Math.pow((190-rightX),2)+Math.pow((100-rightY),2));

  var angleRight = Math.asin(distanceRight/180)*2;

  // ctx.beginPath();

  //如果在左側上半圓則用2PI-弧度

  if(y<100){

  angle = 2*Math.PI - angle;

  }

  if(rightY < 100){

  angleRight = -angleRight;

  }

  ctx.arc(100,100,90,angleRight,angle,false);

  // ctx.stroke();

  ctx.fill();

  window.requestAnimationFrame(init);

  }

關于“html5怎么實現波浪效果圖”這篇文章的內容就介紹到這里,感謝各位的閱讀!相信大家對“html5怎么實現波浪效果圖”知識都有一定的了解,大家如果還想學習更多知識,歡迎關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

荥阳市| 普兰店市| 泾源县| 梁山县| 互助| 青阳县| 澄迈县| 时尚| 马关县| 鹤峰县| 潜山县| 嘉义县| 宝兴县| 安国市| 全椒县| 凤冈县| 岢岚县| 开封县| 郁南县| 阿瓦提县| 涡阳县| 拉萨市| 福州市| 陇南市| 新乐市| 巴彦淖尔市| 威信县| 延安市| 海南省| 新乡县| 九江县| 望奎县| 丰宁| 南丹县| 石首市| 青浦区| 新绛县| 淳化县| 光山县| 密云县| 北流市|