如何在Haskell中生成随机 GLfloat值?
Random GLfloat没有实例声明。
答案 0 :(得分:2)
如果没有实例,请创建一个实例。这是他们教你的第一件事。
有很多种方法,但最简单的方法是生成一种足够的分辨率然后将其转换为GLfloat:
instance Random GLfloat where
random g =
let f :: Double
(f,g2) = random g
in (fromRational (toRational f), g2)
Double
应该足够了,因为它是64位浮点值,而GLFloat
(包裹CFloat
)是32位浮点数。 Float
应该足够了,但我对浮点的细节不够精通,以确保所有平台都适用。