web-dev-qa-db-ja.com

JavaScriptでランダムなRGBを取得するにはどうすればよいですか?

RGBカラー選択を使用するこのコードがあり、JavaScriptにRGBメソッドを使用してランダムカラーを実行させ、コード全体でそれを覚える方法を知りたいと思っていました。

編集:私はこれを試しました:

var RGBColor1 = (Math.round, Math.random, 255)
var RGBColor2 = (Math.round, Math.random, 255)
var RGBColor3 = (Math.round, Math.random, 255)

しかし、それは機能しません。助けてください!

編集2:コードはこれを使用します:

g.fillStyle="rgba(R,G,B,0.2)";
g.strokeStyle="rgba(R,G,B,0.3)";
E();

文字はRGBの色を表します。

編集3:この質問の2倍は、RGB値ではなくHEX値を使用しています。

11
ipodlover3354
function random_rgba() {
    var o = Math.round, r = Math.random, s = 255;
    return 'rgba(' + o(r()*s) + ',' + o(r()*s) + ',' + o(r()*s) + ',' + r().toFixed(1) + ')';
}

var color = random_rgba();

g.fillStyle   = color;
g.strokeStyle = color;

[〜#〜]フィドル[〜#〜]

32
adeneo

これは、単一の乱数生成で機能する非常に単純な方法です。基本的には、0および0xfffff(または2^24、24ビットから取得できる最大数)。 8ビットから取得できる最高値は255。このアルゴリズムは、乱数の左端の8ビットを赤に、中央の8ビットを緑に、最後の8ビットを青に、乱数の24ビットすべてを使用します。

function getRandomRgb() {
  var num = Math.round(0xffffff * Math.random());
  var r = num >> 16;
  var g = num >> 8 & 255;
  var b = num & 255;
  return 'rgb(' + r + ', ' + g + ', ' + b + ')';
}

for (var i = 0; i < 10; i++) {
  console.log(getRandomRgb());
}

コンソール出力(サンプル):

rgb(2, 71, 181)
rgb(193, 253, 111)
rgb(172, 127, 203)
rgb(203, 53, 175)
rgb(226, 45, 44)
rgb(102, 181, 19)
rgb(92, 165, 221)
rgb(250, 40, 162)
rgb(250, 252, 120)
rgb(67, 59, 246) 

source から適応。

14
Cᴏʀʏ
var r = Math.floor(Math.random()*256);          // Random between 0-255
var g = Math.floor(Math.random()*256);          // Random between 0-255
var b = Math.floor(Math.random()*256);          // Random between 0-255
var rgb = 'rgb(' + r + ',' + g + ',' + b + ')'; // Collect all to a string
11
ThatWeirdo