【问题标题】:How to calculate the height and width of a IIIF rotated image如何计算 IIIF 旋转图像的高度和宽度
【发布时间】:2017-10-19 00:29:05
【问题描述】:

我想使用 IIIF 中提供的图像旋转将历史航空照片叠加到地图上。我面临的问题是使用http://jsfiddle.net/jamesinealing/tr7obasm/ 中的代码,我需要在将图像放在地图上之前手动计算 NW 和 SE 点,它们会根据旋转而改变。

我要做的是计算新旋转图像的像素尺寸(如果您愿意,可以使用边界框),然后使用它们至少获得 lat lng 坐标的近似值,然后我可以对其进行调整.

我的计算测试代码在http://jsfiddle.net/jamesinealing/ehp65gy1/(基于https://stackoverflow.com/a/17453766

var rotation=30;
var angle=rotation;
// var angle=((360-rotation) % 180);
var imgWidth=300;
var imgHeight=224;
w = Math.sin(angle * Math.PI/180) * imgHeight + Math.cos(angle * Math.PI/180) * imgWidth;
h = Math.sin(angle * Math.PI/180) * imgWidth + Math.cos(angle * Math.PI/180) * imgHeight;

问题在于它只能在 90 度角范围内工作,而 IIIF 旋转是 0-359 之间的任意值。我很欣赏任何 180 或以上的值都会产生相同的结果,因此无论如何都需要某种模数,但我无法理解为什么它不能在 90 度以上工作!

【问题讨论】:

    标签: javascript geometry iiif


    【解决方案1】:

    新盒子的尺寸只根据angle % 90而变化,即椭圆上的300*224和224*300之间,所以你可以使用调整角度的Math.abs和一些if语句来工作应该是哪条路。

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-09-08
    • 1970-01-01
    • 2020-07-15
    • 2019-05-31
    • 1970-01-01
    • 1970-01-01
    • 2011-03-28
    相关资源
    最近更新 更多