2016-07-21 3 views
0

Это приложение выполнено с Easeljs, чтобы работать в холсте HTML5.Easeljs нарисовать различные виды стрелок

Я хочу, чтобы нарисовать различные виды стрел на доске. Я попытался вставить стрелки в качестве изображений, а затем сделать их перетаскиваемыми и изменчивыми, но это сделало эти изображения довольно уродливыми.

Для иллюстрации:

Field to draw on

поле для рисования на

Dashed arrow

Wobbly arrow

Lightning arrow

Straight arrow

Curved arrow

стрелки рисовать на поле

Функциональность должна выглядеть следующим образом:

  • Нажмите на кнопку
  • Нарисовать линию
  • В случае MouseUp: преобразовать строку в соответствующую стрелку
  • Стрелка должна быть перетаскивать и изменяемыми

Как бы я получить этот результат?

+0

Поддерживает ли пакет EaselJS SVG-изображения? Если это так, это может быть решением. SVG-изображения будут масштабироваться и вращаться без уродства. Я предполагаю, что вы столкнулись с растровым изображением. –

+0

Он поддерживает только SVG в качестве источника изображения. Вы можете использовать векторный формат Graphics и экспортировать несколько типов стрелок из Adobe Animate. – Lanny

ответ

0

Вы можете легко рисовать стрелки, используя API-интерфейс Graphics. Я провел около 20 минут делая это демо:

Код:

var w = startX - endX; 
var h = startY - endY; 
var lineLength = Math.sqrt(w*w+h*h); 

arrow.graphics.clear().setStrokeStyle(3).beginStroke("#000").moveTo(0,0); 
// Logic to draw to the end. This is just a straight line 
arrow.lineTo(lineLength-arrowHeadSize, 0); 

arrow.graphics.beginFill("#000"); 
arrow.graphics.drawPolyStar(lineLength, 0, arrowHeadSize, 3); 

// Rotate 
arrow.rotation = Math.atan2(h, w) * 180/Math.PI; 

Рисунок его прямо и вращая это самый простой способ для добавления эффектов к линия. Демонстрация, которую я написал, рисует своего рода синусоидальную волну, подобную одному из ваших примеров. Есть еще немного волшебства, чтобы сделать его правильной длиной и т. Д.

+0

Спасибо! Я попытаюсь создать стрелки, которые мне нужны, используя ваш код. – BlackFayah

Смежные вопросы