html5怎么实现波浪效果图
html5怎么实现波浪效果图
这篇文章主要介绍了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怎么实现波浪效果图”知识都有一定的了解,大家如果还想学习更多知识,欢迎关注恰卡编程网行业资讯频道。
推荐阅读
-
html5中video不支持的格式是什么
-
html5会不会被淘汰
html5会不会被淘汰这篇文章主要介绍“html5会不会被淘汰”的...
-
IE开始支持HTML5的版本是什么
-
youtube html5播放失败如何解决
-
html5 input禁止输入如何实现
html5input禁止输入如何实现这篇“html5input...
-
html5中的base怎么使用
html5中的base怎么使用这篇文章主要介绍“html5中的ba...
-
html5 date样式如何修改
-
html5的含义是什么
html5的含义是什么这篇文章主要介绍“html5的含义是什么”的...
-
HTML5如何实现禁止android视频另存为
-
html5如何实现隐藏剩余显示内容