球の周りに一連のランダムなフロート (0.0f - 1.0f) がある場合 (または 2D グリッドでも機能する場合)、それぞれが隣接するものと約 0.1f だけ異なる場合、これらを変換する方法はありますか?それぞれのRGB値は、色を取得する可能性が(本質的に)等しい方法で、隣接する色と約0.1fだけ異なります(したがって、一部の色は他の色よりも偏っていません)?
私が使用している方法はthisです。各頂点の最終オフセットが完了した後、すべてのオフセットを 0.0 から 1.0 の float 値にスケールダウンします。これらの float 値は値の初期分布を反映しています。役立つ場合はコード スニペットを投稿できますが、興味がある場合は編集中です。
これが潜在的な答えです、Hot Licksに感謝します! ただし、もう少し均等な分布を与えるものはいいかもしれません. それでも、それは始まりです(それ自体はちょっとクールです)、はい、ありがとうございます!
Random randomGen = new Random();
int randomOne = randomGen.nextInt(256);
int randomTwo = randomGen.nextInt(256);
int randomThree = randomGen.nextInt(256);
float offsets[] = new float[vertices.length];
... // Calcuate the offsets via the method described in that article (code is in the edits if you're curious)
for(int i = 0; i < vertices.length; i++)
{
float randomFloat = offsets[i];
float r = (float)((int)(offsets[i]*255.0) ^ randomOne)/255.0f;
float b = (float)((int)(offsets[i]*255.0) ^ randomTwo)/255.0f;
float g = (float)((int)(offsets[i]*255.0) ^ randomThree)/255.0f;
}
編集:余分なものの多くを削除し、質問の要点に到達しました。コード スニペットやその他の関連情報に興味がある場合は、編集内容を確認できますが、これは私が求めているのは実際には大部分です。
edit edit: (部分的な) ソリューション コード スニペットを追加しました。