Ich versuche, einen Kreis mit seinem Ursprung in der Mitte des Bildschirms zu ziehen:Zeichnung umkreise die manuelle Art und Weise in Java Rückkehr seltsames Ergebnisses
width = canvas.getWidth();
height = canvas.getHeight();
BufferStrategy bufferStrategy = canvas.getBufferStrategy();
if(bufferStrategy == null){//If bufferStrategy is not initialized yet
canvas.createBufferStrategy(3);
bufferStrategy = canvas.getBufferStrategy();
}
Graphics graphics = bufferStrategy.getDrawGraphics();
public int[] pixels = new int[width * height];
int radius = height/6;
for(int theta = 0; theta < 360; theta++){
double rads = Math.toRadians(theta);
double x = (width/2) + (Math.cos(rads) * radius);
double y = (height/2) + (Math.sin(rads) * radius);
pixels[(int)(x + y * width)] = 0xFFFF00FF;
}
BufferedImage image = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB);
image.setRGB(0, 0, width, height, pixels, 0, width);
graphics.drawImage(image, 0, 0, width, height, null);
Aber ich bin ein seltsames Ergebnis zu erzielen:
Danke für jede Hilfe!
Können Sie ein [minimales, ** vollständiges ** und überprüfbares Beispiel] (http://stackoverflow.com/help/mcve) erstellen? Wo haben Sie zum Beispiel die 'graphics' Instanz? –
@ToddSewell Fertig! –
Sieht das Bild korrekt aus, wenn Sie "BufferedImage" in einer Datei speichern? (Versuchen Sie [dieses Tutorial] (https://docs.oracle.com/javase/tutorial/2d/images/saveimage.html) wenn Sie nicht wissen, wie) –