#javascript #canvas #fabricjs
#javascript #холст #fabricjs
Вопрос:
Я хотел бы знать, есть ли на самом деле возможность иметь ограничивающую рамку circle и могу ли я придать этой области цвет фона?
Если это невозможно, может кто-нибудь сказать мне, где я мог бы что-то изменить в исходном коде, чтобы получить ограничивающую рамку circle?
Я видел это обсуждение один раз год назад, и, возможно, что-то изменилось в этом направлении, хотя я ничего не смог найти в документах.
Заранее большое спасибо
Комментарии:
1. я имею в виду исходный код фактической версии fabric 1.4.0. на самом деле я не знаю, что я мог бы добавить или изменить, чтобы получить результат.
Ответ №1:
Ограничивающий прямоугольник круга — это квадрат, который точно содержит этот круг.
Таким образом, вы можете создать прямоугольник с центром в центре круга, а его ширина и высота равны удвоенному радиусу круга.
var rect = new fabric.Rect({
left: CircleCenterXMinusCircleRadius,
top: CircleCenterYMinusCircleRadius,
fill: "red",
width: CircleRadiusX2,
height: CircleRadiusX2
});
… или вы имеете в виду, что хотите установить цвет заливки круга
var circle = new fabric.Circle({
fill: 'blue',
// other properties here
});
…или вы хотите установить цвет заливки фона холста:
var canvas = new fabric.Canvas('myCanvasElement', {
backgroundColor: 'rgb(100,100,200)',
// other properties here
});
Комментарии:
1. Большое спасибо за ответ. Что у меня есть: Пользователь может создавать с помощью щелчка / касания множество кругов на холсте. У каждого круга есть «ограничивающая область», куда вы можете переместить этот круг, верно? я хочу, чтобы эта область была окружностью, а не прямоугольником. и возможность раскрашивать область. но это должно быть видно, только если объект активен, как обычные элементы управления и граница. имеет ли это смысл? большое спасибо, что помогли мне
2. Я понимаю. Нет, вы не можете настроить элементы управления, связанные с элементом, так, чтобы они были круглыми, а не прямоугольными.
3. Привет. Я не хочу изменять сами элементы управления, я хочу изменить ограничивающую рамку на круг вместо прямоугольника. Есть ли возможность добавить некоторые свойства к активным элементам на холсте? Потому что тогда я мог бы создать просто больший круг вокруг исходного. У кого-нибудь есть опыт работы с этим? Было бы очень полезно.
4. Конечно. Вы можете создать группу, содержащую меньшие и большие концентрические круги. Больший концентрический круг был бы вашим
bounding circle
. Ознакомьтесь с группами здесь: github.com/kangax/fabric.js/wiki/Working-with-groups5. привет. это звучит так, как я хочу. но я должен сериализовать все мои объекты, чтобы восстановить их для пользователя в другой точке, и я не хочу сохранять больший концентрический круг. я просто хочу показать это для перемещения, если меньший круг активен, а если нет, он не должен быть видимым и не находиться в строке json. вы понимаете, что я имею в виду? возможно ли это также? большое спасибо