Kreisbewegung

Maalbu

Neues Mitglied
Hi
Ich versuche gerade etwas Java zu lernen und möchte als Übung ein Haus mit einer Sonne programmieren. Erstmal kein Problem aber ich möchte gerne die Sonne im Bogen über das Haus bewegen und mir fällt dazu nichts ein.
Ich hoffe ihr könnt mir helfen.
Als Editor benutzte ich außerdem BlueJ.

Maalbu
 
G

Gast2

Gast
Such dir ne Gleichung die dir zu nem Winkel und nem Abstand r den entsprechenden Punkt ausrechnet. In einer Schleife kannst du dann alle Winkel von 0 bis 180 durchgehen und am entsprechenden Punkt deine Sonne zeichnen.
 

Maalbu

Neues Mitglied
also r*cos(winkel)/r*sin(winkel) berechtnet den Punkt aber wie setzt ich das jetzt in Java? und wie zeichne ich dan an dem Punkt?

Ich hab hier leider echt keine Ahnung würde für später aber gerne wissen wie ich jetzt die Gleichung einbeziehen und auf den Punkten dan zeichnen kann.

Maalbu
 
G

Gast2

Gast
Quick and dirty vielleicht ungefähr so:
Java:
public class DemoPanel extends JComponent {
	private final int radius;
	private double degree;

	public DemoPanel(int radius) {
		this.radius = radius;
	}

	@Override
	protected void paintComponent(Graphics g) {
		super.paintComponent(g);

		Point p = calculatePoint(degree);
		g.fillOval(p.x + radius, p.y + radius, 10, 10);
	}

	public void increaseAngle() {
		degree = (degree + 1) % 360;

		repaint();
	}

	private Point calculatePoint(double degree) {
		int x = (int)(radius * Math.cos(Math.toRadians(degree)));
		int y = (int)(radius * Math.sin(Math.toRadians(degree)));

		return new Point(x, y);
	}

	public static void main(String[] args) {
		JFrame frame = new JFrame("Demo");
		frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

		final DemoPanel dp = new DemoPanel(100);
		dp.setPreferredSize(new Dimension(210,210));

		frame.add(dp);
		frame.pack();
		frame.setVisible(true);

		Timer t = new Timer(10, new ActionListener() {
			@Override
			public void actionPerformed(ActionEvent e) {
				dp.increaseAngle();
			}
		});
		t.start();
	}
}
Die Funktion wie der Punkt fliegen soll würde man dann z.b. wohl noch auslagern.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
A Kreisbewegung flakert Java Basics - Anfänger-Themen 4

Ähnliche Java Themen

Neue Themen


Oben