Я хочу свободно рисовать фигуры с помощью fabric.js. Контур, скажем, 20px (так, что пользователь видит это ясно).fabric.js: Как сделать уникальную, прозрачную форму с инсультом?
После того, как пользователь нарисовал его, форма должна была быть заполнена тем же цветом, что и контур.
Все это должно быть полупрозрачным. К сожалению, это приводит к тому, что перекрытие между контуром и заливом становится менее прозрачным и рисует странную «внутреннюю контур» формы.
Есть ли способ сделать форму уникальной полупрозрачной?
Возможно, уловкой было бы следующее: после того, как пользователь нарисовал форму, «расширьте» форму на половину толщины контура и установите толщину контура на 1. Возможно ли это?
См. Это https://jsfiddle.net/4ypdwe9o/ или ниже для примера.
var canvas = new fabric.Canvas('c', {
isDrawingMode: true,
});
canvas.freeDrawingBrush.width = 10;
canvas.freeDrawingBrush.color = 'rgb(255, 0, 0)';
canvas.on('mouse:up', function() {
canvas.getObjects().forEach(o => {
o.fill = 'rgb(255, 0, 0)';
o.opacity = 0.5;
});
canvas.renderAll();
})
canvas {
border: 1px solid #ccc;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/fabric.js/1.6.3/fabric.js"></script>
<canvas id="c" width="600" height="600"></canvas>
Спасибо, я считал то же самое, но таким образом контур исчезает после того, как форма рисуется (штрих альфа 0). Это похоже на форму «меньше», чем предполагалось пользователем. –