私は openGL プロジェクトに取り組んでいますが、rand 関数が十分なランダム範囲を与えてくれません。私は、1 つのダイヤモンドが画面の中央に配置され、5 つのダイヤモンドが画面の他の場所にランダムに配置されるダイヤモンド プログラムを作成する任務を負っています。何が起こっているのかというと、私の中心のひし形は本来あるべき場所にあり、他の 5 つのひし形は中心から左の小さな範囲でランダムに集まっています。ダイヤモンドを描画する関数を含めました。
void myDisplay(void)
{
srand(time(0));
GLintPoint CenterPoint;
int const size = 20;
CenterPoint.x = screenWidth / 2;
CenterPoint.y = screenHeight / 2;
glClear(GL_COLOR_BUFFER_BIT);
drawDiamond(CenterPoint, size);
for (int i = 0; i < 5; i++)
{
GLfloat x = rand() % 50 + 10;
GLfloat y = rand() % 200 + 100;
GLfloat size = rand() % 100;
GLintPoint diam = {x,y};
drawDiamond(diam, size);
}
さらにコードが必要な場合はお知らせください。編集します。これを修正する方法について誰かアイデアがありますか? 私は rand() 関数の数を「いじり」ましたが、実際にはあまり効果がないようです。それらはまだ画面上のさまざまなポイントに集まっているように見えます. 助けてくれてありがとう。誰かが知る必要がある場合に備えて、私はこれを VS2012 で作成しています。