Как стать автором
Обновить

Комментарии 19

Отличительные черты

Отличительные отчего?
Просто таких решений огромное количество, чем эта лучше?

Ни в одной из других библиотек я не нашел подходящие функции для поиска пересечений фигур.
Насчет FabricJS и KinectJS я не знаю, но в остальных я не смог найти точки пересечения двух фигур. А также эти библиотеки в несколько раз больше весят, чем KeepDraw.

В следующий раз набирайте в поисковике "CanvasLibName intersection", а не пишите ещё одну библиотеку, да ещё и без тестов.

Это не framework, а библиотека.
Как на счет изменения масштаба, смещения (сдвиг) и, возможно, поворота холста?
В онлайн редакторе не помешали бы всплывающие названия контролов, когда курсор над ними.
Сделаю, когда будет время.
Посмотрел демки, посмотрел исходники. Нарисовал вам 4 issue в github. Одно спасибо, что учли 0.5px для отключения anti-aliasing'а, но хардкодить это в коде для всех ИМХО не очень, не всем нужна эта фича, хотелось бы это отключаемой опцией. Есть translate(0.5,0.5), хотя мне он не нравится.
Как-то непоследовательно подошли с ">> 0". В некоторых случаях он есть, в некоторых нету
Пример
arg.stage.ctx.lineTo(seg[0][0] + 0.5, seg[0][1] + 0.5);
...
arg.stage.ctx.quadraticCurveTo((seg[i-1][2] + 0.5) >> 0, (seg[i-1][3] + 0.5) >> 0, seg[i][0], (seg[i][1] + 0.5) >> 0);

Хотелось бы услышать обоснование такого решения
Также в скомпилированном виде https://keepdraw.github.io/KeepDraw.js я вижу странные отступы. Кодогенерация? Если да, то хотелось бы увидеть 0.5px как опцию. Не в приоритете, я все-равно буду делать свой велосипед. BTW. Кодогенератора в репозитории не увидел, надеюсь, что он есть, т.к. если всё это делалось ручками, то у многих возникнут замечания к стилю кодирования
Пример вырвиглазного отступа

        draw: function(arg) {
var crush = !1;
            if (arg.fill) {
            arg.ctx.fillStyle = arg.fill.grd || arg.fill;
            arg.ctx.fillRect(0, 0, arg.width, arg.height);
            }
            else arg.ctx.clearRect(0, 0, arg.width, arg.height);
          for (var i = 0; i < arg.childs.length; i++) {
            if (arg.childs[i]) arg.childs[i].draw(arg.childs[i]);
		else crush = !0;
          }

Выравниватель пробелов для кодогенерации от КО
make_tab = function(target, spacer) {
  return target.replace(/\n/g, "\n" + spacer);
};

Хорошо, учту ваши замечания. Кодогенерации действительно нет, пользовался JSfiddle.
прямоугольник (Rect), правильный многоугольник (Polygon)

Вообще нигде не нашел ни документации, ни примеров использования.
Добавлю в ближайшее время.

А tween-анимаций poly-to-poly нет?

Если потянуть за верхние углы прямоугольника — он развалится
Можете прислать скрин, или описать подробнее, чтобы мне исправить баг?
Понял, исправлено.
я сам пишу большой редактор изображений на основе fabricjs. Посмотрите эту библиотеку. Хотя бы ради идей. А уж реализуете сами
Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.