Программно выбрать объект на холсте Fabricjs из координат - PullRequest
0 голосов
/ 04 декабря 2018

Я застрял с этим так долго.

Я использую холст Fabricjs в качестве текстуры для 3D-модели в Three.js.Модель визуализирует холст как текстуру каждый раз, когда в него вносятся изменения.

Я хотел бы щелкнуть модель и программно выбрать элемент на холсте Fabricjs.

Я достиг преобразования3d-координаты в 2D-координаты Fabric с помощью raycaster, поэтому я могу добавлять новые элементы на холст, щелкая непосредственно на модели.Но я не могу найти способ выбрать объект холста, нажимая на модель, потому что нет никакого метода getObjectFromCoords или подобного метода на Fabricjs

Есть ли какой-либо способ программно выбрать объект на холсте Fabricjs?

Три сцена и холст Fabricjs

1 Ответ

0 голосов
/ 04 декабря 2018

Если все, что вам нужно, это просто выбрать объект на основе (x,y) (т.е. фактически не обрабатывать перетаскивания, изменения размера и т. Д.), Существует fabric.Canvas.prototype._searchPossibleTargets(), который Fabric.js использует для внутреннего использования:

const pointer = {x: x, y: y}
const target = canvas._searchPossibleTargets(canvas.getObjects(), pointer)
if (target) {
  canvas.setActiveObject(target).requestRenderAll()
} else {
  canvas.discardActiveObject().requestRenderAll()
}

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...