python - 浮点布局和舍入

标签 python layout rendering

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

    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/

相关文章:

python - 如何使用python语言读写mifare卡中的数据

css - Extjs - 自定义消息框布局

rendering - Box2D:如何手动渲染 body

c# - 从 XNA 4.0 中的 RenderTarget2D 对象获取 Texture2D

ios - 如何实现用于大量文本输入的 UITextView 屏幕

css - HTML 根据部署机器以不同方式引用我的 CSS

python - 返回数据库中的部门类(class)

Python子进程模块: send string to two chained subprocesses

python - 意外的 id 方法行为

css - 仅当顶部栏粘在顶部时如何显示元素? - Zurb 基金会