【问题标题】:Calculate new position values in C#在 C# 中计算新的位置值
【发布时间】:2012-09-20 19:56:41
【问题描述】:

我有一个包含一些元素的文档。该文件是一份 INDD 文件。我试图在 webview 中显示它,但尺寸比原始尺寸小。 我正在使用 ImageMapper (ASP.NET) 来标记 webview 中的不同元素。 问题是我没有在网络视图的不同位置获得正确的位置。 我得到了正确大小的新点,但没有得到位置。 我按照以下方式进行了计算:

Original size (INDD document)
DocumentWidth = 768
DocumentHeight = 1024
New Size (Size of the webview)
Width = 522
Height = 696

percentW = newWidth(Webview)/DocumentWidth
percentH = newHeight(Webview)/DocumentHeight;

根据这些百分比值,我正在计算 ImageMapper 中需要的所有新值(上、左、下、右)。

公式

myPrecent = (percentW/percentH) * 100;
        result =  myPrecent * ((top,left,right,bottom) / 100);

结果变量应表示将在 ImagMapper 中的点中使用的新值。

我想我在计算中想错了,但我不知道我做错了什么。因此,如果有人知道我做错了什么,我将不胜感激。

【问题讨论】:

    标签: c# asp.net geometry calculus


    【解决方案1】:

    不要将它们视为百分比,而是将它们视为比例因子。

    verticalScaling = Height/DocumentHeight
    horizontalScaling = Width/DocumentWidth
    
    newTop = Top * verticalScaling
    newLeft = Left * horizontalScaling
    newBottom = Bottom * verticalScaling
    newRight = Right * horizontalScaling
    

    【讨论】:

    • 感谢您的帮助!但我实际上从这些计算中得到了相同的值。我认为问题在于 webview 中的 X 和 Y 位置与 INDD 文档相比。我在 webview 中使用 asp:Image 控件。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-04-23
    • 2015-08-23
    • 2011-05-07
    • 1970-01-01
    • 2019-02-08
    • 2018-09-25
    • 2015-01-21
    相关资源
    最近更新 更多