在一个以左上角为原点(0.0, 0.0)的二维坐标系(这也是计算机显示设备常用的坐标系)中, 已知一个宽度(parentWidth)固定的矩形区域parent,指定它的内边距(padding,四个方向相同), 将一组子矩形在其中进行流式布局(Flow Layout):每一行从左至右排列,第一个子矩形左上角与parent左上角的水平距离为padding, 相邻子矩形之间的水平间距为hSpacing,如果加入下一个子矩形会导致宽度超出parentWidth,则此子矩形成为下一行的第一项 。每一行的高度由其中最高的子矩形确定,其它子矩形垂直居中。行与行之间的垂直间距为vSpacing。如图:
每一个矩形的宽高由 case class Size(width: Double, height: Double) 表示,点坐标由 case class Point(x: Double, y: Double) 表示。 请编写方法 def layout(parentWidth: Double, padding: Double, vSpacing: Double, hSpacing: Double, children: Seq[Size]): Seq[Point] 返回经过布局后所有子矩形的左上角坐标(以parent左上角为原点),需要保留次序。 可以美好假设每一个子矩形的宽度小于parentWidth - 2*padding,因此一定有解。