这个是圆圈旋转的简单案例

var canvas=document.getElementById("canvas");
var cxt=canvas.getContext("2d");

function fil(){
a+=0.05;
cxt.clearRect(0,0,canvas.width,canvas.height)
cxt.fillStyle="red";
cxt.beginPath();
cxt.arc((Math.sin(a)+1)*20+50,(Math.cos(a)+1)*20+50,10,0,Math.PI*2,true);
cxt.fill()
cxt.closePath();
requestAnimationFrame(fil);
}

fil();

下面是三角函数的6种用法

(1)角度与弧度互转

radians = degrees * Math.PI /180

degrees = radians * 180 / Math.PI

(2)旋转(弧度)

dx = point.x - object.x;

dy = point.y - object.y;

boject.rotation = Math.atan2(dy, dx);

(3)平滑运动

value = center + Math.sin(angle) * range;

angle += speed;

(4)圆形运动

xposition = centerX + Math.cos(angle) * radius;

yposition = centerY + Math.sin(angle) * radius;

angle += speed;

(5)椭圆运动

xposition = centerX + Math.cos(angle) * radiusX;

yposition = centerY + Math.sin(angle) * radiusY;

angle += speed;

(6)两点间的距离

var dx = x2 - x1;

var dy = y2 - y1;

var dist = Math.sqrt(dx * dx + dy * dy);

canvas三角函数应用的更多相关文章

  1. canvas三角函数模拟水波效果

    .katex { display: block; text-align: center; white-space: nowrap; } .katex-display > .katex > ...

  2. canvas三角函数直线运动

    var canvas = document.getElementById("canvas"); var cxt = canvas.getContext("2d" ...

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

    <canvas id="canvas" width="800" height="400" style="background ...

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

    当程序中遇到三角函数的时候我是懵逼的,于是百度了“初中三角函数”, 忘了这几个公式的,自己打脸. 目的是通过Canvas画一个五角星, 突破口:只要能通过给定的两个外圈点的半径,和内圈点的半径,借助上 ...

  5. canvas检测边界和弹动的实例

    如图所示的效果,小球相互碰撞会相互弹开,这时要干的事就只有两件事了,一:用二次循环遍历小球是否互相碰撞,二:碰撞之后会弹向什么地方和弹出多少距离,第一件事我想学过二维数组循环的都没问题,第二件事也只是 ...

  6. canvas简介

    一.canvas简介 1.1 什么是canvas?(了解) 是HTML5提供的一种新标签 <canvas></canvas> 英 ['kænvəs] 美 ['kænvəs] 帆 ...

  7. 让自己也能使用Canvas

    <canvas> 是 HTML5 新增的元素,可使用JavaScript脚本来绘制图形.例如:画图,合成照片,创建动画甚至实时视频处理与渲染. 兼容性方面,除了一些骨灰级浏览器IE6.IE ...

  8. canvas 图片拖拽旋转之一——坐标转换translate

    引言 对canvas中绘制的图片进行旋转操作,需要使用ctx.translate变换坐标系,将图片旋转的基点设为坐标系的原点,然后ctx.rotate旋转. 这个时候,因为canvas坐标系发生了旋转 ...

  9. HTML5 Canvas核心技术图形动画与游戏开发(读书笔记)----第一章,基础知识

    一,canvas元素 1 为了防止浏览器不支持canvas元素,我们设置“后备内容”(fallback content),下面紫色的字即为后备内容 <canvas id="canvas ...

随机推荐

  1. unix automake 使用,快速生成你的Makefile

    使用automake快速生成编译的Makefile 1,确保自己装有的软件automake autoconf 2, 1)执行autoscan 并将生成的configure.scan重命名为config ...

  2. opencv直线检测在c#、Android和ios下的实现方法

    opencv直线检测在c#.Android和ios下的实现方法 本文为作者原创,未经允许,不得转载 :原文由作者发表在博客园:http://www.cnblogs.com/panxiaochun/p/ ...

  3. UDP模式聊天

    //client (前台) import java.net.DatagramPacket; import java.net.DatagramSocket; import java.net.InetAd ...

  4. OAuth2授权原理

    最近在做第三方接入的,初步定下使用OAuth2协议,花了些时间对OAuth2的授权方式做了些了解. 我还记得一两年前,跟一位同事聊起互联网时,当时我说过一个想法: 目前不少较为稀有的资源,很多都是论坛 ...

  5. jmeter 函数助手里的P,property的使用

    1.函数助手里的 p及property的使用 ${__P(init,2)} , ${__property(init,start,200)} 可以自行定义变量名称,及变量的默认值 P 变量名为init, ...

  6. 紫书例题-Ancient Cipher

    Ancient Roman empire had a strong government system with various departments, including a secret ser ...

  7. 基于tiny6410的madplay播放器的移植

    在移植madplay之前需要先将所需要的库移植到开发板的文件系统中. 现在每个解压后的文件夹中创建一个文件夹 zlib-1.1.4.tar.gz 解压:tar xvzf  zlib-1.1.4.tar ...

  8. nmap脚本扫描使用总结

    nmap的脚本默认目录为:/usr/share/nmap/scripts/ Nmap提供的命令行参数如下 -sC: 等价于--script=default,使用默认类别的脚本进行扫描 可更换其他类别 ...

  9. bzoj1036 [ZJOI2008]树的统计Count

    1036: [ZJOI2008]树的统计Count Time Limit: 10 Sec  Memory Limit: 162 MB Submit: 12646  Solved: 5085 [Subm ...

  10. git创建本地分支

    git branch -b newbranch //创建并切换到newbranch分支下 git push origin newbranch //推送到远程仓库的newbranch分支下,没有就创建