UNPKG

anim-to-bvh

Version:

Anim to BVH converter(mostly for Second Life, including Bento bones). Anim, BVH parsers.

68 lines (55 loc) 2.58 kB
(function() { // Создание библиотеки function GraphLibrary(elementId) { // Находим элемент по ID, куда будет прикреплен Canvas const element = document.getElementById(elementId); if (!element) { console.error('Элемент с таким ID не найден.'); return; } // Создаем канвас const canvas = document.createElement('canvas'); element.appendChild(canvas); // Настройка стилей для канваса const style = document.createElement('style'); style.innerHTML = ` canvas { border: 1px solid black; display: block; background-color: #ffffff; } `; document.head.appendChild(style); // Получаем контекст канваса const ctx = canvas.getContext('2d'); // Функция для очистки канваса this.clear = function() { ctx.clearRect(0, 0, canvas.width, canvas.height); }; // Функция для рисования пикселя с заданными координатами и цветом this.pixel = function(x, y, rgb = 'black') { ctx.fillStyle = rgb; ctx.fillRect(x, y, 1, 1); // Рисуем пиксель 1x1 }; // Функция для рисования заполненного круга this.circle = function(x, y, radius, rgb = 'black') { ctx.fillStyle = rgb; // Устанавливаем цвет заливки ctx.beginPath(); // Начинаем рисование пути ctx.arc(x, y, radius, 0, Math.PI * 2); // Рисуем круг ctx.fill(); // Заполняем круг цветом }; // Устанавливаем размеры канваса, равные размерам родительского элемента this.resizeCanvas = function() { canvas.width = element.offsetWidth; canvas.height = element.offsetHeight; }; // Автоматически обновляем размер канваса при изменении размера родителя window.addEventListener('resize', this.resizeCanvas); // Устанавливаем размеры канваса при загрузке страницы this.resizeCanvas(); // Возвращаем объект для удобства вызова методов return this; } // Экспортируем библиотеку в глобальную область window.GraphLibrary = GraphLibrary; })();