-
Notifications
You must be signed in to change notification settings - Fork 0
/
canvas.js
122 lines (88 loc) · 2.69 KB
/
canvas.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
var canvas = document.querySelector('canvas');
canvas.width = window.innerWidth;
canvas.height = window.innerHeight;
var c = canvas.getContext('2d');
// c.fillStyle = "rgba(255, 0 ,0 , 0.5)"
// c.fillRect(100, 100, 100, 100)
// c.fillStyle = "rgba( 0, 255 ,0 , 0.5)"
// c.fillRect(400, 100, 100, 100)
// c.fillStyle = "rgba(0, 0 , 255, 0.5)"
// c.fillRect(300, 300, 100, 100)
// console.log(canvas)
// // line
// c.beginPath();
// c.moveTo(50, 300);
// c.lineTo(300, 100);
// c.lineTo(400, 300);
// c.strokeStyle = "#fa34a3";
// c.stroke();
// Arc / cistle
// c.beginPath();
// c.arc( 300, 300, 30, Math.PI *2 , false )
// c.strokeStyle = "black"
// c.stroke()
// for (var i = 0; i < 100; i++) {
// var x = Math.random() * window.innerWidth ;
// var y = Math.random() * window.innerHeight ;
// c.beginPath();
// c.arc( x, y, 30, Math.PI *2 , false )
// c.strokeStyle = "black"
// c.stroke()
// }
function Circle(x , y, dx, dy, radius, color ) {
this.x = x;
this.y = y;
this.dx = dx;
this.dy = dy;
this.radius = radius;
this.color = color;
this.draw = function () {
//circulo
c.beginPath();
c.arc( this.x, this.y, this.radius, 0, Math.PI * 2 , false );
c.strokeStyle = "yellow";
c.stroke();
c.fill();
//quadrado
c.fillStyle = this.color;
c.fillRect(this.x + Math.random() *20 , this.y + Math.random() *20 , 100, 100)
}
this.update = function () {
if( this.x + this.radius > innerWidth || this.x - this.radius < 0 ){
this.dx = -this.dx;
}
if( this.y + this.radius > innerHeight || this.y - this.radius < 0 ){
this.dy = -this.dy;
}
this.x += this.dx;
this.y += this.dy;
this.draw();
}
}
function getRandomColor() {
var letters = '0123456789ABCDEF'.split('');
var color = '#';
for (var i = 0; i < 6; i++ ) {
color += letters[Math.round(Math.random() * 15)];
}
return color;
}
var circleArray = [];
for (let i = 0; i < 10; i++) {
var radius = 30;
var x = Math.random() * (innerWidth - radius * 2 ) + radius;
var y = Math.random() * (innerHeight - radius * 2 ) + radius;
var dx = (Math.random() - 0.5) * 10;
var dy = (Math.random() - 0.5) * 10 ;
var color = getRandomColor();
circleArray.push(new Circle(x, y, dx, dy, radius, color ));
console.log(circleArray);
}
function animate () {
requestAnimationFrame(animate);
c.clearRect(0,0, innerWidth, innerHeight);
for (let i = 0; i < circleArray.length; i++) {
circleArray[i].update();
}
}
animate();