我在渲染树中有一个节点,它根据它的子节点计算它的高度。位置和大小值允许为浮点值,在渲染时进行舍入。
def compute_size(self):
# Invokes compute_size() of child nodes.
super(InlineBoxNode, self).compute_size()
# Iterate over all children and compute the current nodes
# height.
self.h = 0
for node in self.children:
self.h += node.h
我面临的问题如下:想象两个节点是上面代码节点的子节点。两个孩子的身高都是10.5
. 子节点被布置在它们各自的前一个节点之下,即节点二将被放置在y=10.5
。在渲染时10.5
变为11
. 第二个节点现在是 aty=11
并且 has h=11
,即它的底边是 at 22
,不是21
。(见下图演示)
我认为这个问题可以通过总是四舍五入来解决(即到较低的相邻整数值),但语义是否正确?
编辑
我刚刚意识到,即使只有四舍五入也不能解决它。第二个节点的底边现在位于20
,但21
应该是正确的。