为啥 Kivy 使用浮点数而不是整数?

Posted

技术标签:

【中文标题】为啥 Kivy 使用浮点数而不是整数?【英文标题】:Why Kivy uses floats instead of integers?为什么 Kivy 使用浮点数而不是整数? 【发布时间】:2014-09-27 14:59:59 【问题描述】:

我刚开始使用 Kivy,注意到它使用浮点值而不是传统的整数。例如,特定小部件的 X 和 Y 值从 0 到 1,而不是 0 到 100。更罕见的是,RGB 值也从 0 到 1,而不是传统的 0 到 255。这可能有点不舒服.

这背后是否有任何性能原因,只是约定还是什么?

【问题讨论】:

【参考方案1】:

这是 OpenGL 使用的,Kivy 最终是一个包装器,因此最容易始终如一地使用它。

我不知道这是否有技术原因,尽管这可能与 0.0-1.0 浮点范围的分辨率比只有 256 个可用值要高得多有关。

我认为在某处(可能在 kivy.utils 中)可能有一个函数可以将 0-255 转换为 0.0-1.0,尽管编写自己的函数当然是微不足道的。

【讨论】:

以上是关于为啥 Kivy 使用浮点数而不是整数?的主要内容,如果未能解决你的问题,请参考以下文章

为啥整数除法产生一个浮点数而不是另一个整数?

为啥我们在 OpenGL (ES) android 中以字节分配块而不是浮点数,尽管我们大部分时间都使用浮点数

为啥 bootstrap 在 .span 上使用浮点数而不是 display: inline-block?

SSE 整数与浮点数练习

TypeError:列表索引必须是整数,而不是浮点数

TypeError:列表索引必须是整数或切片,而不是浮点数