HaskellでランダムなGLfloat値を生成するにはどうすればよいですか?
Random GLfloat のインスタンス宣言はありません。
インスタンスがない場合は、インスタンスを作成します。それが彼らがあなたに教える最初のことです。
多くの方法がありますが、おそらく最も簡単な方法は、十分な解像度のタイプを生成し、それを GLfloat にキャストすることです。
instance Random GLfloat where
random g =
let f :: Double
(f,g2) = random g
in (fromRational (toRational f), g2)
Double
GLFloat
それは64ビットの浮動小数点値であり、 (ラップCFloat
する)は32ビットの浮動 小数点数であるため、十分なはずです。Float
十分なはずですが、浮動小数点の詳細に精通していないため、これがすべてのプラットフォームに当てはまることを確認できません。