【问题标题】:How to randomize colors except black?如何随机化除黑色以外的颜色?
【发布时间】:2012-10-11 03:59:26
【问题描述】:

这条线
g.setColor(new Color(numGen.nextInt(256), numGen.nextInt(256), numGen.nextInt(256)));
生成随机颜色,但出于某种原因我不想在其中包含黑色。我可以限制值,例如,仅 80-256 以排除深色。我试过Math.random 并做模,但它不起作用。请帮我。非常感谢!

【问题讨论】:

  • 我意识到你写了 80-255 来排除深色,但显然这也会排除我不认为深色 255,0,0 等的颜色。

标签: java random colors


【解决方案1】:

如果你想偏移数字在一个更小的范围内随机化并添加偏移量。

private int randomBetween(int min, int max) {
    int range = max - min;
    return min + numGen.nextInt(range);
}

...

g.setColor(new Color(randomBetween(80,256), randomBetween(80,256), randomBetween(80,256)));

这假设您需要每个颜色分量的最小强度。

【讨论】:

  • 请注意,颜色整数的值只能达到 255。
  • @AndrewThompson 我认为我没有超过 255 个。它的实现方式 max 是非包容性的,但也许我不清楚。
【解决方案2】:
g.setColor(
  new Color(127 + numGen.nextInt(128), 
  new Color(127 + numGen.nextInt(128), 
  new Color(127 + numGen.nextInt(128));

【讨论】:

    【解决方案3】:

    生成 80-256 之间的数字:

    css..

    table {
        font: 11px/24px Verdana, Arial, Helvetica, sans-serif;
        border-collapse: collapse;
        width: 320px;
        }
    
    td {
        border: 1px solid #CCC;
        padding: 0 0.5em;
        }
    

    html....

    <head>        
    </head>
    <body>
        <div id='mydiv'></div>
        <button id = "myRandomizeBtn">Randomize</button> 
    </body>
    

    javascript...

    $("#myRandomizeBtn").bind("click",randomizeHandler); 
    
    function randomizeHandler(evt){     
    var root=document.getElementById('mydiv');
    var tab=document.createElement('table');
    tab.className="mytable";
    var tbo=document.createElement('tbody');
    var row, cell;
    var n = 3;  
    var data;    
    
    for (i=0; i<n; i++)
    {
        row=document.createElement('tr');
        for(var j=0;j<n;j++){
            cell=document.createElement('td');
            data = Math.floor(80+(176*Math.random())); 
            cell.appendChild(document.createTextNode(data));
            row.appendChild(cell);
        }
        tbo.appendChild(row);
    }
    tab.appendChild(tbo);
    root.appendChild(tab);
       }  
    

    这是 jsfiddle 的链接...希望对您有所帮助... http://jsfiddle.net/FhyHK/

    【讨论】:

    • 非常感谢!这很有帮助!
    猜你喜欢
    • 1970-01-01
    • 2015-08-16
    • 2015-10-18
    • 2020-12-20
    • 1970-01-01
    • 2018-10-22
    • 2014-09-08
    • 1970-01-01
    • 2013-12-19
    相关资源
    最近更新 更多