Показать сообщение отдельно
Старый 21.11.2008, 12:07
Division вне форума Посмотреть профиль Отправить личное сообщение для Division Найти все сообщения от Division
  № 8  
Ответить с цитированием
Division
 
Аватар для Division

Регистрация: Jul 2008
Адрес: Украина, Херсон
Сообщений: 635
Отправить сообщение для Division с помощью ICQ
Вот, нашёл:
Код AS1/AS2:
public static function LineVsLine(v1 : Vector2, v2 : Vector2, v3 : Vector2, v4: Vector2) {
	var zn = (v4.y-v3.y)*(v2.x-v1.x)-(v4.x-v3.x)*(v2.y-v1.y);
	var ua = ((v4.x-v3.x)*(v1.y-v3.y)-(v4.y-v3.y)*(v1.x-v3.x))/zn;
	var ub = ((v2.x-v1.x)*(v1.y-v3.y)-(v2.y-v1.y)*(v1.x-v3.x))/zn;
	if ((ua>=0 && ua <=1) && (ub>=0 && ub <=1)) return true;
	return false;
}
Функция из моей игрушки отсюда: http://flasher.ru/forum/showthread.php?t=115821 (:
Проверяет пересечение отрезков v1v2 и v3v4.
Смысл в том чтоб представить квадрат в виде отрезков. Для квадрата их будет четыре (: И по очереди проверить пересечение твоего отрезка и отрезков квадрата.
Vector2 - может быть любой класс, имеющий свойства x и y. Могу свой класс скинуть, там уже почти вся нужная математика описана
PS можно было спокойно написать эту функцию самостоятельно, всё что нужно для этого написано в посте 6
__________________
while(1) {}


Последний раз редактировалось Division; 21.11.2008 в 12:10.