# html5_and_javascript_animation
**Repository Path**: codingpan/html5_and_javascript_animation
## Basic Information
- **Project Name**: html5_and_javascript_animation
- **Description**: No description available
- **Primary Language**: JavaScript
- **License**: Not specified
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 0
- **Created**: 2019-09-24
- **Last Updated**: 2020-12-19
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# html5_and_javascript_animation
## 常用的一些代码
### 事件创建 检测等
> 检测是否支持canvas
``` javascript
if (document.createElement('canvas').getContext) {
console.log('support')
}
```
> requestAnimationFrame在各个游览器版本中的实现
``` javascript
if (!window.requestAnimationFrame) {
window.requestAnimationFrame = (
window.webkitRequestAnimationFrame ||
window.mozRequestAnimationFrame ||
window.oRequestAnimationFrame ||
window.msRequestAnimationFrame ||
function(callback) {
return window.setTimeout(
callback,
1000 / 60 //每秒60帧
)
}
)
}
```
> 捕获keydown
``` javascript
textarea.focus()
textarea.addEventListener('keydown', function(event) {
console.log(event.type)
}, false)
```
## 简单的三角函数概念

正弦 sin : 该角相对的直角边与斜边的比例
余弦 cos : 改角的邻边与斜边的比例
正切 tan : 改角的对边与邻边的比例
反正弦 asin : 正弦的逆运算
反余弦 acos : 余弦的逆运算
反正切 atan : 正切的逆运算
> 角度和弧度的换算
``` javascript
radian = angle * Math.PI / 180
angle = radian * 180 / Math.PI
```
> 通过反三角函数求对应的角度或者弧度
``` javascript
Math.asin(0.5) * 180 / Math.PI //30
Math.sin(30 * Math.PI / 180) //4.999
```

> 朝鼠标任意一点旋转
``` javascript
dx = mouse.x - obj.x
dy = mouse.y - obj.y
obj.rotation = Math.atan2(dy, dx) //此处是弧度值
```
> 创建波
``` javascript
function drawFrame() {
window.requestAnimationFrame(drawFrame, canvas)
value = cneter + Math.sin(angle) * range
angle += speed
}
```
> 创建圆形
``` javascript
positionX = centerX + Math.cos(angle) * radius
positionY = centerY + Math.sin(angle) * radius
angle += speed
```
> 创建椭圆形
``` javascript
positionX = centerX + Math.cos(angle) * radiusX
positionY = centerY + Math.sin(angle) * radiusY
angle += speed
```
> 计算两点间距离
``` javascript
dx = x2 - x1
dy = y2 - y1
dist = Math.sqrt(dx * dx + dy * dy)
```