|
@@ -230,23 +230,25 @@ function RotateCounterclockwise90(): void {
|
|
|
const newRotation = (camera.rotation ?? 0) + 90;
|
|
|
|
|
|
// 但计算viewUp向量时,我们应该使用90度的弧度,而不是新角度的弧度!
|
|
|
- const ninetyDegreesRadians = 90 * Math.PI / 180;
|
|
|
+ const ninetyDegreesRadians = (90 * Math.PI) / 180;
|
|
|
|
|
|
// 获取当前的viewUp向量
|
|
|
const currentViewUp = camera.viewUp || [0, 1, 0];
|
|
|
|
|
|
// 计算旋转后的viewUp向量(这才是正确的相对旋转)
|
|
|
const newViewUp: [number, number, number] = [
|
|
|
- currentViewUp[0] * Math.cos(ninetyDegreesRadians) - currentViewUp[1] * Math.sin(ninetyDegreesRadians),
|
|
|
- currentViewUp[0] * Math.sin(ninetyDegreesRadians) + currentViewUp[1] * Math.cos(ninetyDegreesRadians),
|
|
|
- 0
|
|
|
+ currentViewUp[0] * Math.cos(ninetyDegreesRadians) -
|
|
|
+ currentViewUp[1] * Math.sin(ninetyDegreesRadians),
|
|
|
+ currentViewUp[0] * Math.sin(ninetyDegreesRadians) +
|
|
|
+ currentViewUp[1] * Math.cos(ninetyDegreesRadians),
|
|
|
+ 0,
|
|
|
];
|
|
|
|
|
|
// 设置新的相机参数
|
|
|
viewport.setCamera({
|
|
|
...camera,
|
|
|
viewUp: newViewUp,
|
|
|
- rotation: newRotation % 360 // 确保角度在0-359范围内
|
|
|
+ rotation: newRotation % 360, // 确保角度在0-359范围内
|
|
|
});
|
|
|
|
|
|
viewport.render();
|
|
@@ -262,29 +264,43 @@ function RotateClockwise90(): void {
|
|
|
const newRotation = (camera.rotation ?? 0) - 90;
|
|
|
|
|
|
// 但计算viewUp向量时,我们应该使用90度的弧度,而不是新角度的弧度!
|
|
|
- const ninetyDegreesRadians = 90 * Math.PI / 180;
|
|
|
+ const ninetyDegreesRadians = (90 * Math.PI) / 180;
|
|
|
|
|
|
// 获取当前的viewUp向量
|
|
|
const currentViewUp = camera.viewUp || [0, 1, 0];
|
|
|
|
|
|
// 计算旋转后的viewUp向量(这才是正确的相对旋转)
|
|
|
const newViewUp: [number, number, number] = [
|
|
|
- currentViewUp[0] * Math.cos(ninetyDegreesRadians) - currentViewUp[1] * Math.sin(ninetyDegreesRadians),
|
|
|
- currentViewUp[0] * Math.sin(ninetyDegreesRadians) + currentViewUp[1] * Math.cos(ninetyDegreesRadians),
|
|
|
- 0
|
|
|
+ currentViewUp[0] * Math.cos(ninetyDegreesRadians) -
|
|
|
+ currentViewUp[1] * Math.sin(ninetyDegreesRadians),
|
|
|
+ currentViewUp[0] * Math.sin(ninetyDegreesRadians) +
|
|
|
+ currentViewUp[1] * Math.cos(ninetyDegreesRadians),
|
|
|
+ 0,
|
|
|
];
|
|
|
|
|
|
// 设置新的相机参数
|
|
|
viewport.setCamera({
|
|
|
...camera,
|
|
|
viewUp: newViewUp,
|
|
|
- rotation: newRotation % 360 // 确保角度在0-359范围内
|
|
|
+ rotation: newRotation % 360, // 确保角度在0-359范围内
|
|
|
});
|
|
|
|
|
|
viewport.render();
|
|
|
console.log('Rotating Image Clockwise 90°');
|
|
|
}
|
|
|
|
|
|
+function ResetImage(): void {
|
|
|
+ const viewport = cornerstone.getEnabledElementByViewportId(currentViewportId)
|
|
|
+ .viewport as cornerstone.StackViewport;
|
|
|
+ // Implement the logic to reset the image
|
|
|
+ // Resets the viewport's camera
|
|
|
+ viewport.resetCamera();
|
|
|
+ // Resets the viewport's properties
|
|
|
+ viewport.resetProperties();
|
|
|
+ viewport.render();
|
|
|
+ console.log('Resetting Image');
|
|
|
+}
|
|
|
+
|
|
|
const StackViewer = ({
|
|
|
imageIndex = 0,
|
|
|
imageUrls = [],
|
|
@@ -498,8 +514,7 @@ const StackViewer = ({
|
|
|
console.log('Inverting Image');
|
|
|
break;
|
|
|
case 'Reset Image':
|
|
|
- // Implement the logic to reset the image
|
|
|
- console.log('Resetting Image');
|
|
|
+ ResetImage();
|
|
|
break;
|
|
|
case 'Snapshot':
|
|
|
// Implement the logic to take a snapshot
|