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
JavaScript
(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;
})();