Haskell 生成随机GLfloat值
如何在Haskell中生成随机GLfloat值Haskell 生成随机GLfloat值,haskell,Haskell,如何在Haskell中生成随机GLfloat值 Random GLfloat没有实例声明。如果没有实例,则创建一个实例。这是他们教你的第一件事 有很多方法,但最简单的方法可能是生成一种足够的分辨率,然后将其转换为GLfloat: instance Random GLfloat where random g = let f :: Double (f,g2) = random g in (fromRational (toRationa
Random GLfloat没有实例声明。如果没有实例,则创建一个实例。这是他们教你的第一件事 有很多方法,但最简单的方法可能是生成一种足够的分辨率,然后将其转换为GLfloat:
instance Random GLfloat where
random g =
let f :: Double
(f,g2) = random g
in (fromRational (toRational f), g2)
Double
应该足够了,因为这是一个64位浮点值,而GLFloat
(包装CFloat
)是一个32位浮点值<代码>浮点应该足够了,但我对浮点的细节还不够精通,无法确定这对所有平台都是正确的。另请参见realToFrac
,它被定义为fromRational.torional
,但专门用于普通强制转换,因为在浮动和理性之间转换是相当昂贵的。