在 AMI Medical Imaging (AMI) JS ToolKit 中使用鼠标移动进行更改 level/window
Use mouse movement for change level/window in AMI Medical Imaging (AMI) JS ToolKit
我正在玩 AMI 医学成像 (AMI) JS 工具包。有没有办法将窗口移动到鼠标事件,如右键单击和移动?
我知道可以使用示例中的菜单更改 window/level,但我想更改控制器以移动鼠标。
谢谢!
要通过移动鼠标来控制 window/level,您必须监听 mousemouve
事件,然后根据需要更新 stackHelper -> slice -> windowWidth/Center
。
如果用户按 shift
:
,您可以启用 window/level
var drag = {
x: null,
y: null
}
var shiftDown = false;
function onKeyPressed(event){
shiftDown = event.shiftKey;
if(!shiftDown){
drag.x = null;
drag.y = null;
}
}
container.addEventListener('keydown', onKeyPressed);
container.addEventListener('keyup', onKeyPressed);
然后在鼠标移动时更新 window/level:
function onMouseMove(event){
if(!shiftDown || !stack || !stackHelper){
return;
}
if(drag.x === null){
drag.x = event.offsetX;
drag.y = event.offsetY;
}
var threshold = 15;
var dynamicRange = stack.minMax[1] - stack.minMax[0];
dynamicRange /= container.clientWidth;
if(Math.abs(event.offsetX - drag.x) > threshold){
// window width
stackHelper.slice.windowWidth += dynamicRange * (event.offsetX - drag.x);
drag.x = event.offsetX;
}
if(Math.abs(event.offsetY - drag.y) > threshold){
// window center
stackHelper.slice.windowCenter -= dynamicRange * (event.offsetY - drag.y);
drag.y = event.offsetY;
}
}
container.addEventListener('mousemove', onMouseMove);
查看现场演示(shift + 鼠标移动以控制 window 级别):
http://jsfiddle.net/vabL3qo0/41/
我正在玩 AMI 医学成像 (AMI) JS 工具包。有没有办法将窗口移动到鼠标事件,如右键单击和移动?
我知道可以使用示例中的菜单更改 window/level,但我想更改控制器以移动鼠标。
谢谢!
要通过移动鼠标来控制 window/level,您必须监听 mousemouve
事件,然后根据需要更新 stackHelper -> slice -> windowWidth/Center
。
如果用户按 shift
:
var drag = {
x: null,
y: null
}
var shiftDown = false;
function onKeyPressed(event){
shiftDown = event.shiftKey;
if(!shiftDown){
drag.x = null;
drag.y = null;
}
}
container.addEventListener('keydown', onKeyPressed);
container.addEventListener('keyup', onKeyPressed);
然后在鼠标移动时更新 window/level:
function onMouseMove(event){
if(!shiftDown || !stack || !stackHelper){
return;
}
if(drag.x === null){
drag.x = event.offsetX;
drag.y = event.offsetY;
}
var threshold = 15;
var dynamicRange = stack.minMax[1] - stack.minMax[0];
dynamicRange /= container.clientWidth;
if(Math.abs(event.offsetX - drag.x) > threshold){
// window width
stackHelper.slice.windowWidth += dynamicRange * (event.offsetX - drag.x);
drag.x = event.offsetX;
}
if(Math.abs(event.offsetY - drag.y) > threshold){
// window center
stackHelper.slice.windowCenter -= dynamicRange * (event.offsetY - drag.y);
drag.y = event.offsetY;
}
}
container.addEventListener('mousemove', onMouseMove);
查看现场演示(shift + 鼠标移动以控制 window 级别): http://jsfiddle.net/vabL3qo0/41/