1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/wildidea-miitvip-canvas-demo

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Клонировать/Скачать
Внести вклад в разработку кода
Синхронизировать код
Отмена
Подсказка: Поскольку Git не поддерживает пустые директории, создание директории приведёт к созданию пустого файла .keep.
Loading...
README.md

Саньвэйбайпянь

Текущая версия открытого исходного кода — демонстрационная, и она предназначена для использования на одном компьютере. Дизайн пользовательского интерфейса относительно прост, а функциональность не является полностью завершённой. В этой демонстрационной версии открытого исходного кода были представлены широко используемые инструменты для рисования, такие как бесконечный холст (перетаскивание), карандаш, лазерная указка, круг, прямоугольник, ластик, текст, отмена, возврат, снимок экрана и другие. В будущем будет выпущена более зрелая версия с интегрированными функциями для проведения конференций, работы с документами, синхронного обновления данных в реальном времени, онлайн-общения и управления пользователями. Одновременно будет переработан дизайн пользовательского интерфейса, и впоследствии будет предоставлен адрес для ознакомления с опытом использования.

Адрес для демонстрации: https://canvas.makeit.vip/

Инициализация

const stage = new Stage({container: `canvas's container id`});
const layer = new Layer();
stage.add(layer);

При инициализации Stage необходимо вручную инициализировать слой и добавить его в текущий Stage. После завершения инициализации все операции рисования будут выполняться в текущем слое. В Stage можно бесконечно добавлять холсты (Canvas), а также поддерживать бесконечное добавление слоёв (Layer) в каждом Canvas.

Структура каталога

src                 
 ├─assets                   статические ресурсы    
 │  ├─fonts                 шрифты (iconfont)
 │  ├─images                изображения
 │  └─styles                стили
 │      └─canvas            компоненты
 ├─components               
 │  └─canvas                холст
 │      ├─shapes            графические классы
 │      ├─tools             инструменты для холста
 │      └─workers           задачи для многопоточности
 ├─router                   управление маршрутизацией
 ├─store                    управление состоянием
 │  └─stage                 состояние Stage
 ├─utils                    общие инструменты
 └─views                    представления
    └─canvas                представление Canvas

Компонент холста

canvas
 ├─Base.ts                  базовый класс
 ├─Canvas.ts                класс холста
 ├─Cursor.ts                класс курсора
 ├─Events.ts                класс событий
 ├─Layer.ts                 класс слоя
 ├─Point.ts                 класс координат
 ├─Shape.ts                 графический класс
 ├─Stage.ts                 центральный класс
 ├─Throttle.ts              класс регулирования
 ├─Tools.ts                 класс инструментов
 ├─Utils.ts                 общий класс инструментов
 ├─...                      другие базовые/общие классы ...
 ├─shapes                   
 │  ├─Arc.ts                круглый класс
 │  ├─Rect.ts               прямоугольный класс
 │  └─...                   дополнительные инструменты...    
 ├─tools               
 │  ├─Arrow.ts              стрелка
 │  ├─Circular.ts           круг
 │  ├─Drag.ts               перетаскивание
 │  ├─Eraser.ts             ластик
 │  ├─Laser.ts              лазерная указка
 │  ├─Line.ts               прямая линия
 │  ├─Pencil.ts             карандаш
 │  ├─Rect.ts               прямоугольник
 │  ├─Screenshot.ts         снимок экрана
 │  ├─Selection.ts          выделение
 │  ├─Text.ts               текст 
 │  └─...                   больше реализаций классов инструментов...
 └─workers             
 │  ├─rect.worker.ts        задача для прямоугольника
 |  ├─points.worker.ts      задача для координат
 |  └─socket.worker.ts      задача для сокета

Файлы представлений

views
 ├─Backward.vue             шаг назад
 ├─Brush.vue                инструмент «кисть»
 ├─Document.vue             управление документами
 ├─Drag.vue                 перетаскивание холста (бесконечный холст)
 ├─Eraser.vue               ластик
 ├─Forward.vue              шаг вперёд
 ├─Import.vue               импорт документов
 ├─Index.vue                главная страница
 ├─Layers.vue               управление слоями
 ├─Palette.vue              палитра цветов
 ├─Screenfull.vue           полноэкранный режим
 ├─Screenshot.vue           снимок экрана
 ├─Selection.vue            выделение
 ├─Stages.vue               холсты
 ├─Text.vue                 текстовый инструмент
 ├─Thickness.vue            толщина кисти
 └─Users.vue                управление пользователями

Разработка инструментов

1. Создать новый класс инструмента (src/components/canvas/tools).
2. Класс инструмента должен наследовать от класса Tools и реализовывать интерфейс MiTools.
3. Зарегистрировать инструмент с помощью метода Stage.register(tool) или в методе Stage.registerTools().

Часто используемые команды

npm install                 установить проект (установить зависимости)
npm run serve               локальный запуск
npm run build:dev           строить проект (development)
npm run build:pro           строить проект (production)
npm run test:unit           юнит-тестирование
npm run lint                проверка синтаксиса

Комментарии ( 0 )

Вы можете оставить комментарий после Вход в систему

Введение

Тоуя байбан — использует метод офлайнового рендеринга для реализации различных инструментов рисования, таких как плавные и гладкие маркеры. Поддерживает различные часто используемые графические инструменты, такие как круги, прямоугольники, стрелки и прямые линии. Поддерживает бесконечное полотно для рисования, а также предоставляет широкий спек... Развернуть Свернуть
MIT
Отмена

Обновления

Пока нет обновлений

Участники

все

Недавние действия

Загрузить больше
Больше нет результатов для загрузки
1
https://api.gitlife.ru/oschina-mirror/wildidea-miitvip-canvas-demo.git
git@api.gitlife.ru:oschina-mirror/wildidea-miitvip-canvas-demo.git
oschina-mirror
wildidea-miitvip-canvas-demo
wildidea-miitvip-canvas-demo
master