【发布时间】:2012-12-26 07:53:57
【问题描述】:
我在渲染树中有一个节点,它根据其子节点计算其高度。位置和大小值允许为浮点值,在渲染时进行舍入。
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。第二个节点现在位于y=11 并具有h=11,即它的底边位于22,而不是21。 (见下图演示)
我认为这个问题可以通过总是四舍五入来解决(即到较低的相邻整数值),但语义是否正确?
编辑
我刚刚意识到,即使只是四舍五入也不能解决问题。第二个节点的底边现在位于20,但21 是正确的。
【问题讨论】: