代码之家  ›  专栏  ›  技术社区  ›  Cheva

以百分比调整矩形大小,同时保持其纵横比

  •  3
  • Cheva  · 技术社区  · 7 年前

    我想将矩形区域的大小调整为50%Rect1 w1 x h1,我不想直接将宽度或高度调整为一半,因为这给了我25%的面积,我需要的是找到一个等效的矩形,纵横比,面积等于原来的50%。因此,我需要找到矩形Rect2的h2 x w2。

    我还有Rect2:a2

    我需要w2和h2(保持Rect1的纵横比)

    Image

    1 回复  |  直到 7 年前
        1
  •  7
  •   Blija    7 年前

    如图所示,矩形由w1和w2定义,如下所示:

    area = w1 * h1
    

    您需要一个面积为一半但纵横比相同的矩形,因此必须有一个除数(d),将w1和w2相等地减少,以得到被切成两半的新区域:

    area * 1/2 = (d * w1) * (d * h1)
    

    一些简单的数学:

    d * w1 * d * w1 = w1 * h1 * 1/2
    => d * d = 1/2
    => d = sqrt(1/2)
    

    w1 = 4, h1 = 3
    
    4 * 3 = 12
    
    => d * 4 * d *3 = sqrt(1/2) * 4 * sqrt(1/2) * 3 = 6