Dobry wieczór,
Szukam pomocy przy wykrywaniu kolizji pomiędzy dwoma kwadratami podanymi rotacją. Po mimo wielu poradników nie dałem sobie jednak rady z tym zagadnienie.
Potrafię już wykrywać kolizje na osi x i osi y, przy rotacjach konieczna jest jednak dodatkowa oś (co najmniej jedna) np P. W teorii potrafię jeszcze zrozumieć jak miało by to działać, mam jednak problem z napisaniem sprawnego kodu.

Na razie udało mi się zapisać coś takiego:

 //player vector
	float lenght_box_p = odl(box_xy, box.getTransform().transformPoint(box.getPoint(0)));


	//line vector
	float lenght_line_p = odl(line_xy, line.getTransform().transformPoint(box.getPoint(0)));


	// center vector
	float lenght_center_p = odl(line_xy, box_xy);


	// angle 
	float angle = cos((rotations * M_PI) / 180);

	//////////////////////////////////////
	// radians = (degrees * Pi) / 180	//
	//									//
	// degrees = (radians * 180) / Pi	//
	//////////////////////////////////////

	//box projection
	float projection_box_p = lenght_box_p * angle;

	//line projection 
	float projection_line_p = lenght_line_p * angle;

	float gap_p1 = lenght_center_p - projection_box_p - projection_line_p;

	if (gap_p1 <0)
	{
		p1 = true;
	}

Kod poprawnie działa np przy rotacji 45 (oba obiekty mają tą samą rotacje), przy 59 stopniach obiekty mogą się już jednak przenikać.

Pozdrawiam