@dimentimor

Как лучше рендерить клеточный автомат?

Здравствуйте!

Имеется довольно большая матрица (чем больше- тем лучше).
Как правильно отрисовать её на странице?
Хотелось бы еще и с нормальной частотой, хотя-бы раз в 50 ms.

// сейчас в таком виде
function renderMatrix(matrix, selector) {
	var wrap = document.querySelector(selector);

	wrap.innerHTML = '';
	for (var y = 0; y < matrix.length; y++) {

		wrap.innerHTML += '<br>';
		for (var x = 0; x < matrix[y].length; x++) {

			var cell = matrix[y][x];
			wrap.innerHTML += '<div class="_'+ cell +'">'+ cell +'</div>';
		}
	}
}


И еще, не будет ли быстрее преобразовывать матрицу в строку через arr.toString(), помещать строку на страницу, а потом регулярным выражением заменить клетки на дивы?

Картинка
5b4474efbdc06068415417.jpeg
  • Вопрос задан
  • 177 просмотров
Решения вопроса 1
0xD34F
@0xD34F Куратор тега JavaScript
Имеется довольно большая матрица (чем больше- тем лучше).
Как правильно отрисовать её на странице?
Хотелось бы еще и с нормальной частотой, хотя-бы раз в 50 ms.

Используйте canvas. При правильном подходе сможете добиться результата на порядок лучше, чем 50 миллисекунд.

не будет ли быстрее преобразовывать матрицу в строку через arr.toString()...

Не будет.

Картинка
5b4474efbdc06068415417.jpeg

Указывать состояния не нужно - цветового обозначения вполне достаточно. Кроме того, при небольших размерах клеток вы эти цифры либо не увидите, либо они не будут влезать в свои клетки (вы представьте, что отрисовываете матрицу хотя бы 300x300).
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
Vlad_IT
@Vlad_IT Куратор тега JavaScript
Front-end разработчик
С нормальной частотой или скоростью? Если матрица не изменилась, то зачем ее перерисовывать?
Предлагаю использовать canvas, легко сможете рисовать очень большие матрицы.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы