Rotacja obiektów

0

Witam, mam problem - próbuję zrobić obrazek który odwraca się w stronę kursora:

	public Graphics2D rotate(Graphics g)
	{
		Graphics2D g2d = (Graphics2D)g;
		double angleToTurn = Math.atan2(mhandler.y-this.getY()-16, mhandler.x-this.getX()-16);
		g2d.rotate(angleToTurn+(Math.PI/2), this.getX()+16, this.getY()+16);
		return g2d;
	}

mhandler pobiera X i Y z myszki

(dodawanie i odejmowanie 16 ponieważ obrazek ma wymiary 32x32)

I wszystko działa super na jednym obiekcie, ale kiedy dodaje drugi, to wszystko zaczyna się walić.. wygląda to tak jak w załączniku - pierwszy stworzony obiekt obraca się i zachowuje zgodnie z oczekiwaniami, a drugi zaczyna latać w koło trzymając się tej samej odległości od obiektu pierwszego jednocześnie się obracając (wzdłuż białej strzałki) jak dodam trzeci obiekt to dzieje się to samo między nim a drugim, wyznaczają sobie jakby orbitę z poprzedniego obiektu i wokół niej latają (tylko podczas ruchu myszką). Siedze nad tym dobre parę godzin i nie mogę tego rozgryźć..

2

rotate w klasie Graphics2D nie obraca obiektu, rotate obraca układ współrzędnych. Jak chcesz obracać kilka obiektów, to dla każdego obiektu rób coś takiego:

g2d.rotate(angle,x,y);
g2d.draw...
g2d.rotate(-angle,x,y);

1 użytkowników online, w tym zalogowanych: 0, gości: 1