2017-08-28 13 views
1

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ライブラリからグラフィックスを使用しています。また、私は過去にこれをやったことがありますが、なぜ今回はうまくいかないのか分かりません。

+0

ヘルプをもっと早く得るには、[MCVE]または[短く、自己完結型の正しい例](http://www.sscce.org/)を投稿してください。 –

答えて

0

この部分はあなたの問題である:

points.get(i).x*100-5+100 

具体的x*100

あなたは、画面をオフに描画されています。 x = 28のポイントがあるとします。

その上で数学を行うことができます:X = 28の場合

次の計算値になります:(28 * 100) - (+ 100 5)= 2695

こと2695のXポイントは私にとって非常に大きく見えます。あなたはそれを見るために4k画面または超ウインドウが必要です。

ソリューション: あなたがx*100を使用している理由について考えを持っている、との点が画面に収まるように、それを減らします。また、yポイントが小さい場合は、ネガティブに表示されます(例:15-5-300 = -290)、おそらく画面の上や見えなくなります。

関連する問題