【问题标题】:Building a 2d array to draw different color circles构建二维数组以绘制不同颜色的圆圈
【发布时间】:2012-12-14 06:57:05
【问题描述】:

下面的代码会随机生成不同颜色的圆圈。我需要能够通过它的大小来指定圆的颜色,以便循环将在不同的位置产生相同的圆图案。这需要使用二维数组来完成。我知道这可能并不难,但我似乎无法掌握这个概念。 这是方向和我的代码。

谢谢!

设置一个 2-D、int colors[][] 数组,该数组有 6 行,每个圆圈一个,3 列,每个元素(红色、绿色、蓝色)一个要使用的颜色。在上面的显示中,颜色值是在程序开始时在 0 到 255 范围内随机生成的。然后对于每个直径[i],颜色[i][0]、颜色[i][1] 和颜色[i][2] 用于 RGB 级别。

import java.io.*;
import java.util.*;
import java.awt.*;

public class Lab10 {

    /**
     * @param args
     */
    public static void main(String[] args) {


        Scanner console=new Scanner (System.in);


        Random r = new Random();

        int [] color= new int [3];
        color[0]=r.nextInt(256);
        color[1]=r.nextInt(256);
        color[2]=r.nextInt(256);

        System.out.println("Please enter 6 integer values. The values should be in descending order and in the range 100 to 1.");
        int[] diameters=new int[6];
        int colors[][] = new int [6][3];
        for(int i=0; i<6; i++){
            diameters[i]=console.nextInt();//values entered
        }


        for (int i=0; i<diameters.length;  i++) {
            for (int j = 0;  j < color.length;  j++) {
              colors[i][j]=colors[i][j];
            }




        }



        int panelX = 400, panelY = 400;
        DrawingPanel panel = new DrawingPanel(panelX, panelY);
        panel.setBackground(Color.WHITE);

        Graphics g = panel.getGraphics();

        for (int i=0; i<10; i++){
            int centerX=r.nextInt(350);
            int centerY=r.nextInt(350);
            for(int value:diameters){
                g.setColor(new Color(r.nextInt(256),r.nextInt(256), r.nextInt(256)));
                g.fillOval(centerX - value , centerY - value, 2 * value, 2 * value);
            }
        }
    }

    }

【问题讨论】:

  • 家庭作业?究竟是什么问题?
  • DrawingPanel 到底是什么?另外,你有colors[i][j] = colors[i][j],我想不出一个自我分配的理由。

标签: java


【解决方案1】:

提示

为你打破概念。

int color[6][3] 是你的数组。

随机生成颜色值 创建类Random的对象

Random random = new Random();

在颜色行上循环

for(int i=0;i<6;i++)
{
for(int j=0;j<3;j++)
color[i][j]= random.nextInt(255);
}

现在像直径[i]一样画圆,

请参阅color[i][0],color[i][1],color[i][2] 了解其 rgb 值

【讨论】:

    【解决方案2】:

    如果我做对了,你想随机画圆,并且你希望颜色取决于直径。

    这是我对该问题的解决方案:pastebin

    另外,我试图展示如何在使用和不使用 java 8 的情况下完成它,所以不要对此感到困惑。

    它应该是这样的:

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2023-04-06
      • 1970-01-01
      • 2013-12-19
      • 1970-01-01
      • 2013-10-24
      • 1970-01-01
      • 2012-08-01
      相关资源
      最近更新 更多