# Winkel



## JavaForever (21. Mai 2010)

Hi!
wie zeichne ich (mit hilfe von g.drawLine(int,int,int,int) in paint(Graphics g)) zwei Linien , die in einem best. Winkel zu einander liegen???
???:L
müsste man das vllt. mit Graphics 2D machen???


----------



## Michael... (21. Mai 2010)

Wenn man das nicht selbst ausrechnen will, kann man das mit Graphics2D und rotate machen:

```
import java.awt.Color;
import java.awt.Graphics;
import java.awt.Graphics2D;

import javax.swing.JFrame;
import javax.swing.JPanel;
public class DrawRotationDemo extends JFrame {
	public DrawRotationDemo() {
		this.getContentPane().add(new RotationPanel());
	}
	
	class RotationPanel extends JPanel {
		private double alpha = Math.toRadians(45);
		
		public void paintComponent(Graphics g) {
			super.paintComponent(g);
			Graphics2D g2 = (Graphics2D)g.create();
			g2.setColor(Color.RED);
			g2.drawLine(50, 50, 150, 50);
			g2.rotate(alpha, 50, 50);
			g2.drawLine(50, 50, 150, 50);
			g2.dispose();
		}
	}
	
	public static void main(String[] args) {
		JFrame frame = new DrawRotationDemo();
		frame.setBounds(0, 0, 500, 300);
		frame.setLocationRelativeTo(null);
		frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		frame.setVisible(true);
	}
}
```


----------



## Landei (21. Mai 2010)

Angenommen, die erste Linie ist waagerecht, sagen wir (50,60,120,60), und wir wollen sie um den Winkel 42° um den ersten Punkt (50,60) drehen. Die Länge der Linie ist 70. Dann wäre die gesuchte Linie (50, 60, 50 + (int) (70*Math.cos(42*Math.PI/180)), 60 - (int) (70*Math.sin(42*Math.PI/180)))


----------

