问题绘图使用图形的Java
问题描述:
我想用绘制一个椭圆for循环,每个包含x值和y坐标值的列表进行迭代。目前,我开始程序后似乎没有绘制任何东西。它汲取了第一次,但是当我尝试绘制程序运行时,它似乎并不在其中进行绘制。问题绘图使用图形的Java
这里是绘制代码:
private void render(){
bs = display.getCanvas().getBufferStrategy();
if(bs == null){
display.getCanvas().createBufferStrategy(3);
return;
}
g = bs.getDrawGraphics();
//Draw Here!
DrawGrid(g);
g.fillOval(100, 100, 10, 10);//this seems to draw
for(int i = 0; i < points.size();i++){//this doesn't draw....
System.out.println(points.get(i));
g.drawString(points.get(i).toString(), points.get(i).x*100-5+100, points.get(i).y-5-300);
g.fillOval(points.get(i).x*100-5+100, points.get(i).y-5-300, 10, 10);
}
//End Drawing!
bs.show();
g.dispose();
}
如果您需要更多的细节,我使用从java.awt中的库图形。另外,我过去也是这样做的,但我不知道为什么这次不工作。
答
这部分是你的问题:
points.get(i).x*100-5+100
具体x*100
您抽出屏幕。我们可以通过它分解看到这一点: 让我们假设你有X = 28点。
让我们做的是数学:
对于X = 28,你将有以下计算:(28 * 100) - (5 + 100)= 2695
那X点2695
对我来说看起来很大。您需要4k屏幕或超宽屏幕才能看到它。
解决办法: 有一个思考,为什么你正在使用x*100
,并减少它,使该点在屏幕上适合。另外,如果你有一个小y点,那么这将是在底片(例如:15-5-300 = -290
),并可能绘制上方您的屏幕,淡出人们的视线。
为了更好地帮助越早,张贴[MCVE]或[简要,独立的,正确的示例](http://www.sscce.org/)。 –