健壮的热带鱼 · c语言random函数在vc,C++ ...· 2 周前 · |
有腹肌的夕阳 · 【C++11算法】random_shuffl ...· 2 周前 · |
唠叨的卡布奇诺 · 【摄影】Lightroom系列教程 - ...· 4 月前 · |
有爱心的帽子 · 初探地理数据可视化工具 kepler.gl ...· 10 月前 · |
销魂的瀑布 · 春——依如初见-文章荟萃-衡阳市公安局· 1 年前 · |
刀枪不入的啄木鸟 · 颁奖季十大热门电影!Netflix占3部,《 ...· 1 年前 · |
火星上的烤地瓜 · |漫画|官方在线漫画全集-快看漫画· 1 年前 · |
我想在Java应用程序中的JPanel上随机绘制彩色点。有没有什么方法可以创建随机颜色?
如果你不想让它看起来很可怕,我建议在数组中定义一个颜色列表,然后使用随机数生成器来挑选一个。
如果你想要一个真正随机的颜色,你只需要生成3个从0到255的随机数,然后使用Color(int,int,int)构造函数来创建一个新的Color实例。
Random randomGenerator = new Random();
int red = randomGenerator.nextInt(256);
int green = randomGenerator.nextInt(256);
int blue = randomGenerator.nextInt(256);
Color randomColour = new Color(red,green,blue);
可以使用三个浮点数(r,g,b)实例化颜色,每个浮点数都在0.0和1.0之间: http://download.oracle.com/javase/6/docs/api/java/awt/Color.html#Color(float,%20float,%20float 。
使用Java的Random类,您可以轻松地实例化新的随机颜色,如下所示:
Random r = new Random();
Color randomColor = new Color(r.nextFloat(), r.nextFloat(), r.nextFloat());
我不能保证它们都是漂亮的,但它们将是随机的=)
好的。只需使用随机RGB值生成颜色即可。像这样:
public Color randomColor()
Random random=new Random(); // Probably really put this somewhere where it gets executed only once
int red=random.nextInt(256);
int green=random.nextInt(256);
int blue=random.nextInt(256);
return new Color(red, green, blue);
}
如果你不喜欢随机数产生的颜色,你可能想改变随机数的生成。我猜这些会变得相当暗。
你似乎想要浅色随机的颜色。不知道你说的光到底是什么意思。但是如果你想要随机的“彩虹色”,试试这个
Random r = new Random();
Color c = Color.getHSBColor(r.nextFloat(),//random hue, color
1.0,//full saturation, 1.0 for 'colorful' colors, 0.0 for grey
1.0 //1.0 for bright, 0.0 for black
);
有关更多信息,请搜索HSB颜色模型。
如果你想要令人愉悦的、柔和的颜色,最好使用HLS系统。
final float hue = random.nextFloat();
// Saturation between 0.1 and 0.3
final float saturation = (random.nextInt(2000) + 1000) / 10000f;
final float luminance = 0.9f;
final Color color = Color.getHSBColor(hue, saturation, luminance);
将此复制粘贴为鲜艳的柔和彩虹颜色
int R = (int)(Math.random()*256);
int G = (int)(Math.random()*256);
int B= (int)(Math.random()*256);
Color color = new Color(R, G, B); //random color, but can be bright or dull
//to get rainbow, pastel colors
Random random = new Random();
final float hue = random.nextFloat();
final float saturation = 0.9f;//1.0 for brilliant, 0.0 for dull
final float luminance = 1.0f; //1.0 for brighter, 0.0 for black
color = Color.getHSBColor(hue, saturation, luminance);
package com.adil.util;
* The Class RandomColor.
* @author Adil OUIDAD
* @URL : http://kizana.fr
public class RandomColor {
* Gets the random color.
* @return the random color
public static String getRandomColor() {
String[] letters = {"0","1","2","3","4","5","6","7","8","9","A","B","C","D","E","F"};
String color = "#";
for (int i = 0; i < 6; i++ ) {
color += letters[(int) Math.round(Math.random() * 15)];
return color;
}
随机RGB值的一行代码:
new Color((int)(Math.random() * 0x1000000))
我知道现在回答这个问题有点晚了,但我还没见过其他人这么说。
正如Greg所说,您希望使用Random类
Random rand = new Random();
但我要说的区别很简单,你可以这样做:
Color color = new Color(rand.nextInt(0xFFFFFF));
就是这么简单!不需要生成许多不同的浮点数。
import android.graphics.Color;
import java.util.Random;
public class ColorDiagram {
// Member variables (properties about the object)
public String[] mColors = {
"#39add1", // light blue
"#3079ab", // dark blue
"#c25975", // mauve
"#e15258", // red
"#f9845b", // orange
"#838cc7", // lavender
"#7d669e", // purple
"#53bbb4", // aqua
"#51b46d", // green
"#e0ab18", // mustard
"#637a91", // dark gray
"#f092b0", // pink
"#b7c0c7" // light gray
// Method (abilities: things the object can do)
public int getColor() {
String color = "";
// Randomly select a fact
Random randomGenerator = new Random(); // Construct a new Random number generator
int randomNumber = randomGenerator.nextInt(mColors.length);
有爱心的帽子 · 初探地理数据可视化工具 kepler.gl - 知乎 10 月前 |
销魂的瀑布 · 春——依如初见-文章荟萃-衡阳市公安局 1 年前 |
火星上的烤地瓜 · |漫画|官方在线漫画全集-快看漫画 1 年前 |