canvas三角函数直线运动

var canvas = document.getElementById("canvas");
var cxt = canvas.getContext("2d");
var centerX = canvas.width / 2;
var centerY = canvas.height / 2;
// var x=centerX,y=centerY,speedX=1,speedY=0,radius=10;
function Ball(x, y, radius, speed) {
this.x = x;
this.y = y;
this.radius = radius;
this.speed = speed;
}

function Getrandom(min, max) {
return(Math.random() * (max - min) + min);
}
var ball = [];
document.querySelector("#btn").onclick = function() {
var speed = {
x: 0,
y: 0
};
if(Math.random() >= 0.5)
speed.x = Getrandom(-6, 6);
else
speed.y = Getrandom(-6, 6);
ball.push(new Ball(centerX, centerY, 10, speed))
console.log(ball);
}

function drawBall() {
cxt.clearRect(0, 0, canvas.width, canvas.height);
for(var i = 0; i < ball.length; i++) {
var b = ball[i];
cxt.beginPath();
// b.x +=b.speed.x;
// b.y += b.speed.y;
var vx = Math.cos(1 * Math.PI / 180);
var vy = Math.sin(1 * Math.PI / 180);
console.log(vx, vy);
b.x += vx;
b.y += vy;
// if(b.x >= (canvas.width - b.radius * 2) || b.x <= 0 + b.radius * 2)
// b.speed.x = -b.speed.x;
// console.log(x,canvas.width-radius*2)
// if(b.y >= (canvas.height - b.radius * 2) || b.y <= 0)
// b.speed.y= -b.speed.y;
cxt.arc(b.x, b.y, b.radius, 0, Math.PI * 2, true);
cxt.fillStyle = "red";
cxt.fill();
cxt.closePath();
}
requestAnimationFrame(drawBall);
}
drawBall();

时间: 2024-10-31 11:19:03

canvas三角函数直线运动的相关文章

canvas三角函数做椭圆运动效果

<canvas id="canvas" width="800" height="400" style="background-color: #000;"></canvas> <script type="text/javascript"> var canvas=document.getElementById("canvas"); var cxt=canv

基于canvas实现物理运动效果与动画效果(一)

一.为什么要写这篇文章 某年某月某时某种原因,我在慕课网上看到了一个大神实现了关于小球的抛物线运动的代码,心中很是欣喜,故而写这篇文章来向这位大神致敬,同时也为了弥补自己在运动效果和动画效果制作方面的不足 二.几种简单的直线运动 这一部分主要讲解的是简单的运动效果的实现原理,其实所有的canvas动画效果的实现在核心思想是一致的:都是先定义个初始的状态,然后定义一个定时器,定时器内执行一个方法,记得在这个方法中要对当前的画面清除,然后在这个方法中重新绘制需要变化的效果,由于人眼存在残影,所以短时

canvas 五角星之回顾【初中三角函数】

当程序中遇到三角函数的时候我是懵逼的,于是百度了“初中三角函数”, 忘了这几个公式的,自己打脸. 目的是通过Canvas画一个五角星, 突破口:只要能通过给定的两个外圈点的半径,和内圈点的半径,借助上面的公式计算出每个五角星点的坐标. 主要代码如下: [300]指的是外圈的半径 [150]指的是内圈的半径 <canvas id="canvas" width="800" height="800"></canvas> var

《每周一点canvas动画》——三角函数

本节主要内容有: 三角函数介绍 常用三角函数解析 鼠标跟随角度旋转 看到三角函数,勾股定理这样的数学名词是不是有种双腿打颤的感觉啊!好吧,就算你已经吓尿了,也不能否认我们中学学习的知识终于有了用武之地,挽起袖子,开整!!! 1.三角函数 什么是三角函数呢?简单的定义:所谓三角函数,在几何上来说就是夹角与边的关系!为了更直观的表示,也为了让忘记的同学回忆起来,这里我给个示意图. 在上图中例出了几个常用的三角函数,角度与边(x, y和R)之间的关系如公式所示!那么在canvas中角度与边之间的关系是

三角函数之美-水波纹加载LoadingView

一.前言 学习是要总结的,最近几天学习了绘图相关的,但是使用的机会较少,现在又快要遗忘了,这次看了水波纹的绘制,觉得十分有意思,还是 把实现的方法记录下来.技术无他,为手熟尔,还是要多练习,空淡误国,实干兴邦,让我们看看今天的三角函数之美吧. 二.概述 肯定大家对中学学习的三角函数都不陌生吧,不过学习的sin.cos是超越函数一类函数,是初等函数的一种,借用维基百科的一张图: 一个完整的正弦函数应该是这样的:>y=Asin(ωx+φ)+h,A决定峰值,ω决定周期,φ表示初相位,h表示y轴的位置.

canvas绘图数学知识总结

题外话: 最近看了一本书叫 <HTML5 Canvas核心技术 图形.动画与游戏开发>已经算是看了85%,基本接近尾声,所以近期会多总结一些关于canvas的东西, 这本书讲的还算可以,最大的障碍就是一些数学知识和理论的应用,第八章的碰撞检测比较难理解,看这部分的时候,我感觉非常吃力,向量运算是主要技术点, 我这本书是以阅读源码为主的,有兴趣的朋友可以看看,大家交流一下. 三角函数 canvas中所有和角有关的api 都是用的弧度 js api 如 Math.sin(),Math.cos,Ma

神奇且强大的canvas

一.canvas简介 1.1什么是canvas? 是HTML5提供的一种新标签,ie9才开始支持的 <canvas></canvas>   英 ['k?nv?s] 美 ['k?nv?s] 帆布 画布 canvas是一个矩形区域的画布,可以用JS控制每一个像素在上面绘画. canvas标签使用JavaScript在网页上绘制图像,本身不具备绘图功能. canvas拥有多种绘制路径.矩形.圆形.字符以及添加图像的方法. 1.2canvas主要应用的领域 1可视化数据:各类统计图表,比如

html5 canvas画五角星(美国队长)

画一波五角星: 美国队长图标 原理:  (1)根据五角星的顶点,外顶点5个,内顶点5个,分成内外圆 (2)由三角函数可表示出每个顶点的位置 (3)利用canvas的lineTo()接口画图 上代码: 1 <!DOCTYPE html> 2 <html lang="en"> 3 4 <head> 5 <meta charset="UTF-8"> 6 <title>Captain America</tit

canvas检测边界和弹动的实例

如图所示的效果,小球相互碰撞会相互弹开,这时要干的事就只有两件事了,一:用二次循环遍历小球是否互相碰撞,二:碰撞之后会弹向什么地方和弹出多少距离,第一件事我想学过二维数组循环的都没问题,第二件事也只是用上期次弹动讲到的三角函数来判断角度,因为是力是相互的,所以反弹的一方应该是负值,而且因为撞击力会抵消,所以应该在乘以系数之后再乘以0.5这样就是相互弹撞,为了让效果明显,可以让反弹系数变成0.5,这样在弹在墙上就会变缓慢,效果就会变得更好 讲了这么多还是老规矩,代码贴上 var canvas =