Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Сообщения за день
 

Вернуться   Форум Flasher.ru > Flash > ActionScript 3.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему  
Старый 10.07.2011, 13:36
Scorp2008 вне форума Посмотреть профиль Отправить личное сообщение для Scorp2008 Найти все сообщения от Scorp2008
  № 5  
Ответить с цитированием
Scorp2008

Регистрация: Dec 2009
Сообщений: 42
Не знаю, так подсказали делать. Вот функция какая-то с кругом, но я не уверен с линией ли это пересечение, подскажите плиз:

Код AS3:
		public static function InterRayCir(p1, p2, sc, sc_r) {
			var EPS = 0.00000001;
			var dp = {};
			//
			dp.x = p2.x-p1.x;
			dp.y = p2.y-p1.y;
			var a = dp.x*dp.x+dp.y*dp.y;
			if (Math.abs(a)<EPS) {
				return [];
			}
			var b = 2*(dp.x*(p1.x-sc.x)+dp.y*(p1.y-sc.y));
			var c = sc.x*sc.x+sc.y*sc.y;
			c += p1.x*p1.x+p1.y*p1.y;
			c -= 2*(sc.x*p1.x+sc.y*p1.y);
			c -= sc_r*sc_r;
			var bb4ac = b*b-4*a*c;
			if (bb4ac<0) {
				return [];
			} else {
				var mu1 = (-b+Math.sqrt(bb4ac))/(2*a);
				var mu2 = (-b-Math.sqrt(bb4ac))/(2*a);
				//p = p1 + mu1 (p2 - p1)
				var r1 = {};
				r1.x = p1.x+mu1*(p2.x-p1.x);
				r1.y = p1.y+mu1*(p2.y-p1.y);
				if (mu1 === mu2) {
					return [r1];
				} else {
					var r2 = {};
					r2.x = p1.x+mu2*(p2.x-p1.x);
					r2.y = p1.y+mu2*(p2.y-p1.y);
					return [r1, r2];
				}
			}
		}
Ну и само собой вопрос о том как это использовать остается открытым Есть массив врагов, есть точки линии выстрела, а дальше то как, не соображаю ничерта

ps, вроде то что выше это луч с кругом. А как тогда линия с кругом.. но самое то главное как это все использовать может кто-нибудь подсказать


Последний раз редактировалось Scorp2008; 10.07.2011 в 13:44.
Создать новую тему   Часовой пояс GMT +4, время: 21:50.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


Часовой пояс GMT +4, время: 21:50.


Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.