使用threejs raycast的fabricjs点击角问题

Posted

技术标签:

【中文标题】使用threejs raycast的fabricjs点击角问题【英文标题】:Problem with click corner of fabricjs using threejs raycast 【发布时间】:2022-01-08 03:00:15 【问题描述】:

我正在尝试重新创建此app,它目前正在运行。但是我不能完美的点击文字的角落,它总是需要偏移。

https://jsfiddle.net/naonvl/ecdxfkbm/3/

现在,很难缩放文本。我认为getRealPosition 不正确,所以鼠标 X 和 Y 也不精确。

有谁知道如何解决这个问题?

【问题讨论】:

【参考方案1】:

问题是我这样设置getIntersects

var getIntersects = function (point, objects) 
  mouse.set(point.x * 2 - 0.97, -(point.y * 2) + 0.97);
  raycaster.setFromCamera(mouse, camera);
  return raycaster.intersectObjects(objects);
;

与这里的三个.js 示例比较https://threejs.org/examples/#webgl_raycast_texture

function getIntersects( point, objects ) 
  mouse.set( ( point.x * 2 ) - 1, - ( point.y * 2 ) + 1 );
  raycaster.setFromCamera( mouse, camera );
  return raycaster.intersectObjects( objects, false );    

我想念那里计算mouse.set,我改变计算并调整鼠标的X和Y位置,每一个都加3,它完美地投射在鼠标指针的中心

【讨论】:

以上是关于使用threejs raycast的fabricjs点击角问题的主要内容,如果未能解决你的问题,请参考以下文章

如何在threejs中通过raycaster从相交检查中排除辅助对象?

threejs raycasting - 相机和加载的 obj 模型之间的交集

ThreeJS中的点击与交互——Raycaster的用法

three.js 给模型添加标注

ThreeJS:在PlaneBufferGeometry中查找相邻面

ThreeJs 选中物体事件