В настоящее время я пытаюсь запрограммировать анимацию Fibonacci Sequence на холсте HTML5 с использованием JavaScript.Анимация последовательности Фибоначчи
Я вычислил числа Фибоначчи и могу добавить квадраты к макету сетки. Проблема, с которой я столкнулась, заключается в том, чтобы вычислить смещение, чтобы они автоматически соответствовали друг другу бок о бок. У кого-нибудь есть какие-либо указания на то, как это может быть достигнуто.
вот мой JavaScript код:
var canvas;
var context;
function init(){
canvas = document.getElementById('canvas');
context = canvas.getContext('2d');
drawgrid();
drawlines();
}
function drawgrid(){
context.strokeStyle="LightGrey";
for(var i = 0; i < 600; i+=20){
context.beginPath();
context.moveTo(i, 0);
context.lineTo(i, 600);
context.stroke();
context.beginPath();
context.moveTo(0, i);
context.lineTo(600, i);
context.stroke();
}
}
function drawlines(){
context.strokeStyle="blue";
var startLeft = (canvas.width/2) - 20;
var startTop = (canvas.height/2) - 20;
var first = 1;
var second = 1;
var next = 0;
var c = 0;
var count = 0;
for (var i = 0; i < 5; i++){
if (c <= 1){
next = 1;
}else{
next = first + second;
first = second;
second = next;
}
c++;
next *= 20;
//This is a minor attempt at offsetting which does not work what so ever
switch(count) {
case 1:
startLeft += next;
break;
case 2:
startTop-=next;
break;
case 3:
startTop -= next - 20;
startLeft -= next;
break;
case 4:
startTop += next - 80;
startLeft += next - 160;
break;
}
context.beginPath();
context.rect(startLeft,startTop,next,next);
context.stroke();
count++;
if (count > 4){
count = 1;
}
startLeft = (canvas.width/2) - 20;
startTop = (canvas.height/2) - 20;
}
}
JSFiddle: http://jsfiddle.net/schoolboytom/73prkp8L/
Может вам собрал какой-то JSFiddle? Когда я пытаюсь воспроизвести это, я просто получаю пустой экран. – alex
@alex да, извините. Здесь вы идете ... https://jsfiddle.net/schoolboytom/73prkp8L/ – user3723666