Показать сообщение отдельно
Старый 14.06.2009, 15:49
silin вне форума Посмотреть профиль Посетить домашнюю страницу silin Найти все сообщения от silin
  № 2  
Ответить с цитированием
silin
 
Аватар для silin

блогер
Регистрация: Mar 2003
Адрес: Моск. обл.
Сообщений: 5,269
Записей в блоге: 6
затык скорее всего в Math.atan2(x, y), должно быть Math.atan2(y, x)
остальное только вопрос системы координат/обозначений
upd:
мне кажется так должно быть
Код AS3:
public function reflection(force:Point):Point
{
	var x:Number = force.x;
	var y:Number = force.y;
	var perpendicular:Number = _angle - Math.PI / 2;
	var iangle:Number = Math.atan2(y, x); 
	var rangle:Number = 2 * perpendicular - iangle;//угол падения равен углу..
	var d:Number = Math.sqrt(x * x + y * y);
	return new Point(Math.cos(rangle) * d, Math.sin(rangle) * d);
}
но опять же от принятых направлений зависит


Последний раз редактировалось silin; 14.06.2009 в 16:15.