Javascript 我们如何将医学图像与#x27;s段位置,单击';事件在JS中的位置?

Javascript 我们如何将医学图像与#x27;s段位置,单击';事件在JS中的位置?,javascript,Javascript,您好,谢谢您阅读我的文章 此问题与此库密切相关: 我想创建一个函数来检测您是否按下了图像的某个部分,以便能够显示一个对话框,其中包含一条消息,通知您该对话框 通过我自己,并在StackOverflow中查找示例,我已经做了一些基本的操作,以检测您是否按下了按钮以及在何处,并根据条件区分您是否在某个段附近单击: window.addEventListener('click', onWindowClick, false); function onWindowClick(event) {

您好,谢谢您阅读我的文章

此问题与此库密切相关:

我想创建一个函数来检测您是否按下了图像的某个部分,以便能够显示一个对话框,其中包含一条消息,通知您该对话框

通过我自己,并在StackOverflow中查找示例,我已经做了一些基本的操作,以检测您是否按下了按钮以及在何处,并根据条件区分您是否在某个段附近单击:

window.addEventListener('click', onWindowClick, false);

    function onWindowClick(event) {
        if (event.clientX > 200 && event.clientX < 300) {
            alert('You have clicked: ' + event.clientX + " " + event.clientY + ' on the segment');
        } else {
            alert('You have clicked: ' + event.clientX + " " + event.clientY + ' out of the segment');
        }
window.addEventListener('click',onWindowClick,false);
函数onWindowClick(事件){
如果(event.clientX>200&&event.clientX<300){
警报('您已在段上单击:'+event.clientX+''+event.clientY+');
}否则{
警报('您已单击:'+event.clientX+''+event.clientY+'超出段');
}
如果在绿色区域附近单击,则显示一个示例输出:

如果单击外部:

问题是:我需要什么数据/位置/资源才能比较当前单击的位置并断言您单击了进入或退出?

嗯,我自己检查了数据结构,看起来有两个选项。首先,我们可以使用帧的位置,它看起来代表分段的空间位置,它看起来像:

点击的位置为:
277294
数据结构中的图像位置为:
-201-59

另外,另一种选择是堆栈的原点:

这里点击的pos是:
278 301
来源是:
-201-59

所以无论我选择_imagePosition还是origin,我都需要做一些转换

我确实研究过使用ijk和lps坐标系的矩阵,在课程和示例中,常见的是看到一个矩阵被更新以在它们之间转换

你有什么建议或帮助吗?
谢谢!

我不太清楚您所说的“图像片段”是什么意思,但我想您的意思是,您正在尝试查看用户是否单击了图像

您应该使用THREEJS Raycaster()并查看它是否与“切片网格”相交

这就是我们在quadview示例中双击其中一个2D查看器时所做的操作:

相关代码:

function onDoubleClick(event) {
  const canvas = event.target.parentElement;
  const mouse = {
    x: ((event.clientX - canvas.offsetLeft) / canvas.clientWidth) * 2 - 1,
    y: - ((event.clientY - canvas.offsetTop) / canvas.clientHeight) * 2 + 1,
  };
  ...
  const raycaster = new THREE.Raycaster();
  raycaster.setFromCamera(mouse, camera);
  const intersects = raycaster.intersectObjects(scene.children, true);
  if (intersects.length > 0) {
    const lpsCoordinates = intersects[0].point;
    const ijkCoordinates = CoreUtils.worldToData(lps);
  }

源代码:

你好,Nicolas,谢谢你快速而好的回复。通过图像片段,我指的是标签地图。我的意思是,我不仅想检测用户是否点击了该切片,而且想检测点击是否在标签地图上。我已经研究了你提供的示例,这将是过滤bac点击的第一步但是,kground并不是完整的答案。谢谢!