0

HaskellでランダムなGLfloat値を生成するにはどうすればよいですか?

Random GLfloat のインスタンス宣言はありません。

4

1 に答える 1

2

インスタンスがない場合は、インスタンスを作成します。それが彼らがあなたに教える最初のことです。

多くの方法がありますが、おそらく最も簡単な方法は、十分な解像度のタイプを生成し、それを GLfloat にキャストすることです。

instance Random GLfloat where
    random g = 
        let f :: Double
            (f,g2) = random g
        in (fromRational (toRational f), g2)

DoubleGLFloatそれは64ビットの浮動小数点値であり、 (ラップCFloatする)は32ビットの浮動 小数点数であるため、十分なはずです。Float十分なはずですが、浮動小数点の詳細に精通していないため、これがすべてのプラットフォームに当てはまることを確認できません。

于 2012-05-03T04:17:07.250 に答える