gpt4 book ai didi

python - 浮点布局和舍入

转载 作者:太空宇宙 更新时间:2023-11-04 01:30:17 24 4
gpt4 key购买 nike

我在渲染树中有一个节点,它根据它的子节点计算它的高度。位置和大小值允许为浮点值,舍入在渲染时完成。

    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

我面临的问题如下:假设两个节点是上述代码节点的子节点。两个 child 的高度都是 10.5。子节点位于它们各自的前一个节点下方,即节点二将放置在 y=10.5 处。在渲染时 10.5 变为 11。第二个节点现在位于 y=11 并且具有 h=11,即它的底部边缘位于 22,而不是 21。 (示范见下图)

我认为这个问题可以通过始终四舍五入(即向下相邻整数值)来解决,但是语义是否正确?

enter image description here


编辑

我刚刚意识到,即使是四舍五入地板也不能解决这个问题。第二个节点的底边现在位于 20,但 21 是正确的。

enter image description here

最佳答案

因此内部表示是 float 的,实际布局以像素为单位。必须涉及某种舍入。然后在加法前做同样的舍入操作,例如

self.h += int(node.h)

在你的情况下。

关于python - 浮点布局和舍入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14283143/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com