eclipse中Java在控制台做像抛物线一样输出*
在eclipse中用Java怎么做到按照一定的规律像抛物线一样在控制台输出*?请问这个数学上的公式该怎么运用,主要讲解做法思维,代码不是关键,关键是怎么假设做到实现。...
在eclipse中用Java怎么做到按照一定的规律像抛物线一样在控制台输出*?请问这个数学上的公式该怎么运用,主要讲解做法思维,代码不是关键,关键是怎么假设做到实现。
展开
1个回答
展开全部
……首先,这个明显不是抛物线,而是sin/cos曲线
我习惯用轻量组件
取两个数,x1和y1,x从最左边到最右边循环赋值,y1=f(x1)
再取两个数,x2和y2,x2就是下一个x1的值,y2=f(x2)
其中f(x)是一个函数,可以是sin(x),也可以是x的平方。
创建一个JPanel,但是别直接定义JPanel类,你需要这样创建:
ClassName variable = new ClassName(parameters);
其中这个ClassName,需要你继承JPanel,并覆盖里边的paintComponent(Graphics g)方法,不这样创建是画不出来的。
接下来就开始画,g.drawLine(x1, y1, x2, y2),精度可能不高,但是效果是如图的。
哎呀我靠逗比了,答完了才看见是在控制台输出的
前面也不用删,但是把
g.drawLine(x1, y1, x2, y2)
换成
g.drawRect(x1, y1, 1, 1)
比较好,x2和y2就扔了吧。
要在控制台输出,先定义一下每行长度和宽度,也就是横坐标和纵坐标。
越多越精细,但是太多了也不行,一行打不出来,会很……
然后用下面的两个句子:
BufferedImage b=new BufferedImage(刚才那个面板的长度、宽度、1是三个需要传递的参数);
某个面板.paint(b.createGraphics());
这样把面板上显示的内容输入在一个名字叫b的图像里
这时候就可以用两个循环嵌套,来挨个检查b上的每一个点的颜色,用这个句子:
int color=b.getRGB(x, y);其中x和y分别是横纵坐标。color就是一个16进制的数字
转成红绿蓝三色,就用下面这个:
int r=(color&0xff0000)>>16, g=(color&0xff00)>>8, b=color&0xff;
(重名什么的去死吧!)
然后我们一般都是用黑笔来画函数图像对吧,就用if语句判断红绿蓝是否都为0,如果是则系统打印一个*号,如果不是则系统打印一个空格。
最后再加一行,当横坐标超出时,系统打印一个转行符。
我习惯用轻量组件
取两个数,x1和y1,x从最左边到最右边循环赋值,y1=f(x1)
再取两个数,x2和y2,x2就是下一个x1的值,y2=f(x2)
其中f(x)是一个函数,可以是sin(x),也可以是x的平方。
创建一个JPanel,但是别直接定义JPanel类,你需要这样创建:
ClassName variable = new ClassName(parameters);
其中这个ClassName,需要你继承JPanel,并覆盖里边的paintComponent(Graphics g)方法,不这样创建是画不出来的。
接下来就开始画,g.drawLine(x1, y1, x2, y2),精度可能不高,但是效果是如图的。
哎呀我靠逗比了,答完了才看见是在控制台输出的
前面也不用删,但是把
g.drawLine(x1, y1, x2, y2)
换成
g.drawRect(x1, y1, 1, 1)
比较好,x2和y2就扔了吧。
要在控制台输出,先定义一下每行长度和宽度,也就是横坐标和纵坐标。
越多越精细,但是太多了也不行,一行打不出来,会很……
然后用下面的两个句子:
BufferedImage b=new BufferedImage(刚才那个面板的长度、宽度、1是三个需要传递的参数);
某个面板.paint(b.createGraphics());
这样把面板上显示的内容输入在一个名字叫b的图像里
这时候就可以用两个循环嵌套,来挨个检查b上的每一个点的颜色,用这个句子:
int color=b.getRGB(x, y);其中x和y分别是横纵坐标。color就是一个16进制的数字
转成红绿蓝三色,就用下面这个:
int r=(color&0xff0000)>>16, g=(color&0xff00)>>8, b=color&0xff;
(重名什么的去死吧!)
然后我们一般都是用黑笔来画函数图像对吧,就用if语句判断红绿蓝是否都为0,如果是则系统打印一个*号,如果不是则系统打印一个空格。
最后再加一行,当横坐标超出时,系统打印一个转行符。
更多追问追答
追问
我仅仅想做到的是,在控制台进行打印*,不是用图形化去做,图形化Java没有竞争力,不过昨天我想到了一个办法,不用数学用逻辑做到一样的效果。先判断输入的值,对应控制循环空几格,打印一个*,我现在就有两个想法,一是在空格完毕的时候在用循环和对次数控制,往上打印*,二就是在每次空格的时候判断进行打印,以后都进行判断。很遗憾,你所说的,不是我所想的,或者你不用图像化把代码贴出来,我自己研究这是怎么个原理
追答
客户端才能追答……晕……那就写不了代码了
先定义一组二维char组,两个角标分别作为横纵坐标,用一个循环,输入x输出y……
手机上打字真麻烦
我一会贴个图吧
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询