文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

html5怎么实现波浪效果图

2024-04-02 19:55

关注

这篇文章主要介绍了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怎么实现波浪效果图”知识都有一定的了解,大家如果还想学习更多知识,欢迎关注编程网行业资讯频道。

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     807人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     351人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     314人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     433人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     221人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-前端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯