gpt4 book ai didi

java - 在java Draw中扩散颜色

转载 作者:行者123 更新时间:2023-11-30 11:37:56 25 4
gpt4 key购买 nike

我试图在 java Draw 中扩散一种颜色(它没有正常扩散的能力),但我遇到了一个错误,我似乎无法发现它。我传播的方法是写一个小脚本,它会画我的形状数百次,每次都更小,颜色略有不同。这是我的片段:

import javax.swing.*;
import java.awt.*;
public class DiffuseDraw extends JFrame
{
//set size of window here
final int length = 350;
final int height = 370;

public DiffuseDraw()
{
super("Graphics Project Window");
Container container = getContentPane();
setBackground(new Color(0,0,0));
setSize(length, height);
setVisible(true);
}


// my problem comes here:

public void paint(Graphics g)
{

Draw.fillRectangle(g,0,0,length,height,new Color(19,24,32));

int rad = 325; // size of the biggest circle

float floatGreen = 0; // Color components for black
float floatBlue = 0;
float floatRed = 0;

int counter = 0; // the counter
while (counter < 290) {
rad = rad - 1; // Here we shrink the by a small incriment

floatRed = floatRed + 87/290; //red component slowly goes brighter
floatBlue = floatBlue + 178/290; // blue component slowly goes brighter
floatGreen = floatGreen + 211/290; // green component slowly goes brighter
int intRed = (int)Math.round(floatRed);
int intBlue = (int)Math.round(floatBlue);
int intGreen = (int)Math.round(floatGreen);

Draw.fillCircle(g,173,307,rad,new Color(intRed,intBlue,intGreen));
counter = counter + 1;
}

}

public static void main(String args[]) {
DiffuseDraw prog = new DiffuseDraw();
prog.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
}

当我编译并运行时,我只得到一个黑屏。我猜问题出在颜色没有改变。我添加 float 红色蓝色和绿色的数字来 self 想要扩散一种蓝色,所以我采用了将出现的最亮的蓝色并将其除以 290,即循环运行的次数。

最佳答案

代替

87/290178/290211/290

尝试使用

(float)87/290(float)178/290(float)211/290

这至少会为窗口添加一些颜色 - 问题是默认情况下,像 87/290 这样的数字将被评估为 0;将其转换为 float 将得到所需的 0.3 结果。

关于java - 在java Draw中扩散颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13832223/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com