Zemsky,
Вариант...
Сообщение от Zemsky
|
Чтобы значение угла поворота квадрата не повторялось подряд
|
<!DOCTYPE html>
<html>
<head>
<title></title>
<meta charset="utf-8">
</head>
<body>
<canvas id="myCanvas" width="400" height="400"></canvas> <script>
var a = 0;
// Первое объявление переменных для проверки неповторения значения q
var q = 0;
var qold = 0;
var b = setInterval(function () {
var canvas = document.getElementById("myCanvas");
var context = canvas.getContext("2d");
// Размеры квадрата.
var rectWidth = 40;
var rectHeight = 40;
// Сохранение
context.save();
// Очистка холста
context.clearRect(0, 0, canvas.width, canvas.height);
// Смещение начала осей координат в центр фигуры
context.translate(canvas.width / 2 + Math.round((Math.random() * 100) - 50), canvas.height / 2 + Math.round((Math.random() * 100) - 50));
// Алгоритм поворота квадрата с проверкой неповторения значения q
// Расчет угла поворота по часовой стрелке
do {
q = Math.floor((Math.random() * 10) / 3) * 0.5
} while (q == qold)
// Поворот
context.rotate(Math.PI * q);
qold = q;
// Рисование квадрата
context.fillStyle = "#ff0000";
context.fillRect(0, 0, rectWidth, rectHeight);
// Вставка символа
context.font = "30pt Calibri";
context.textAlign = "center";
context.fillStyle = "#0000ff";
context.fillText("\u2603", 20, 33);
a++;
if (a == 50) {
clearInterval(b)
};
// Восстановление
context.restore();
}, 1000);
</script>
</body>
</html>