Math 数学-根据可伸缩和固定对象调整容器高度

Math 数学-根据可伸缩和固定对象调整容器高度,math,Math,我试图根据窗口的大小来调整容器内容的布局,确定图像的缩小量,该图像位于具有其他固定高度文本字段的容器中 在这个问题中,我只关心身高,所以当我提到比例时,我指的是身高比例或scaleY 在下图中: 蓝色=可调整大小的主窗口 绿色=主窗口中可调整大小的容器 红色=固定高度文本字段(不可缩放) 黑色=可缩放图像 内容(文本字段和图像)填充容器,因此绿色容器可以表示文本字段和图像的高度,或者至少表示第一个文本字段的y坐标和最后一个文本字段的y坐标和高度之间的差值 将窗口的大小调整为大于绿色容器

我试图根据窗口的大小来调整容器内容的布局,确定图像的缩小量,该图像位于具有其他固定高度文本字段的容器中

在这个问题中,我只关心身高,所以当我提到比例时,我指的是身高比例或
scaleY

在下图中:

  • 蓝色=可调整大小的主窗口

  • 绿色=主窗口中可调整大小的容器

  • 红色=固定高度文本字段(不可缩放)

  • 黑色=可缩放图像

  • 内容(文本字段和图像)填充容器,因此绿色容器可以表示文本字段和图像的高度,或者至少表示第一个文本字段的y坐标和最后一个文本字段的y坐标和高度之间的差值

    将窗口的大小调整为大于绿色容器对绿色容器没有影响,它将保持其当前大小。但是,将窗口调整为较小的大小必须更改容器大小以适应。我只能访问图像高度。因此,缩小窗口的大小也将缩放图像高度。新的缩放图像高度将确定包含固定高度文本字段的容器的高度

    问题:将窗口调整到较低高度后,如何确定图像的缩放比例(介于0.0和1.0之间),以使固定高度文本字段彼此保持相同的距离,并调整容器的大小,使其边界与窗口保持相同的距离(在本图中为10px)

    image.scaleY = ...
    

    只需获取可调整大小窗口的高度(绿色),然后减去固定高度组件和组件之间的间距之和。剩余空间是可用于销售图像的空间


    当然,大多数UI工具包都包含一些工具来简化这一过程,比如支持固定和可伸缩单元格的表格或网格布局,或者dock布局。如果可以,您应该利用这类功能,因为它的性能/响应性更高。

    将窗口大小减小
    dh
    像素还必须将图像高度减小
    dh
    像素,以保持所有其他绝对值

    因此,比例因子是(给定
    image\u height
    是当前图像高度,
    dh
    是要减少的像素数)


    哦,然后要确定比例,只需将可用高度除以原始高度即可。只需找出窗口上的比例变化,并将其应用于图像。因此,如果窗口从
    100px->80px更改为new/original=80/100=0.8=scale;新图像高度=旧图像高度*比例
    scale_y = (image_height - dh) / image_height