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

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

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 21.01.2014, 17:06
Akopalipsis вне форума Посмотреть профиль Найти все сообщения от Akopalipsis
  № 11  
Ответить с цитированием
Akopalipsis
Banned
[+4 24.02.14]
[+4 07.11.13]
[+ 13.03.14]

Регистрация: Mar 2013
Сообщений: 1,864
Меня словосочетание "Высшая математика" пугает.. По этому у меня самый простой вопрос - если n-угольники выпуклые, то так же стоит ли воспользоваться алгоритмом с хабра или он будет слишком тяжёлый и в конкретной задаче лучше будет использовать другой?

Старый 21.01.2014, 17:53
Dukobpa3 вне форума Посмотреть профиль Отправить личное сообщение для Dukobpa3 Найти все сообщения от Dukobpa3
  № 12  
Ответить с цитированием
Dukobpa3
 
Аватар для Dukobpa3

блогер
Регистрация: Oct 2010
Адрес: Киев
Сообщений: 1,678
Записей в блоге: 12
Отправить сообщение для Dukobpa3 с помощью Skype™
Да я думаю в реальных задачах проще будет в твой выпуклый многоугольник вписать несколько прямоугольников и вхождение в них искать.
Будет некоторая погрешность, но тут уже от требуемой точности зависит. По производительности думаю это самый простой вариант.
__________________
Кто к нам с чем для чего - тот у нас того от того.

Старый 21.01.2014, 17:55
Akopalipsis вне форума Посмотреть профиль Найти все сообщения от Akopalipsis
  № 13  
Ответить с цитированием
Akopalipsis
Banned
[+4 24.02.14]
[+4 07.11.13]
[+ 13.03.14]

Регистрация: Mar 2013
Сообщений: 1,864
Dukobpa3 Спасибо! Сижу на листочке решаю

Старый 21.01.2014, 21:22
Nooob вне форума Посмотреть профиль Отправить личное сообщение для Nooob Найти все сообщения от Nooob
  № 14  
Ответить с цитированием
Nooob
 
Аватар для Nooob

Регистрация: Mar 2007
Сообщений: 319
О производительности http://tmonax.blogspot.ru/2012/08/blog-post.html
не смотря на результаты, кажется лучшим вариантом трассировка луча. просто и красиво
Код AS3:
public static function hitTestCoord (x:int, y:int, hitAreaPoints:Vector.<int>):Boolean
{
	var n:int = hitAreaPoints.length - 2;
	if (n <= 0)
	{
		return false;
	}
	var bx1:int   = hitAreaPoints[0];
	var by1:int   = hitAreaPoints[1];
	var x2:int    = x + 1000;
	var y2:int    = y;
	var i:int     = 0;
	var count:int = 0;
	while (i < n)
	{
		var bx2:int = hitAreaPoints[i + 2];
		var by2:int = hitAreaPoints[i + 3];
		var dx1:int = bx2 - bx1;
		var dy2:int = by2 - by1;
		if ((dx1 * (y - by1) - dy2 * (x - bx1)) * (dx1 * (y2 - by1) - dy2 * (x2 - bx1)) < 0)
		{
			var dx3:int = x2 - x;
			var dy4:int = y2 - y;
			if ((dx3 * (by1 - y) - dy4 * (bx1 - x)) * (dx3 * (by2 - y) - dy4 * (bx2 - x)) < 0)
			{
				count++
			}
		}
		bx1 = bx2;
		by1 = by2;
		i += 2;
	}
	return count % 2 != 0;
}

Старый 21.01.2014, 21:47
Akopalipsis вне форума Посмотреть профиль Найти все сообщения от Akopalipsis
  № 15  
Ответить с цитированием
Akopalipsis
Banned
[+4 24.02.14]
[+4 07.11.13]
[+ 13.03.14]

Регистрация: Mar 2013
Сообщений: 1,864
Nooob Спасибо! Именно из-за этой ссылки у меня и возник вопрос о векторном методе.
В итоге я склонился к методу, точное название которого не знаю, но приблизительно так же, как и у Вас.

Добавлено через 3 минуты
И у меня вопрос оффтопного характера - y=kx+l, это что?
Или y=kx+l === y=kx+b ?

Старый 22.01.2014, 12:00
vorodis2 вне форума Посмотреть профиль Отправить личное сообщение для vorodis2 Найти все сообщения от vorodis2
  № 16  
Ответить с цитированием
vorodis2

Регистрация: Feb 2011
Адрес: Украина Днепропетровск
Сообщений: 106
Как я понимаю Вашу задачу, что у Вас есть набор точек из которого получается многоугольник. Когда я делал нечто подобное то самое сложное было из из набора точек построить многоугольник и разбить его на треугольники. В первый раз когда я этим парился, я делал свой алгоритм (не один), а во второй раз я использовал nape, чего и вам всетки рекомендую.
Посмотрите хотя бы на
http://napephys.com/samples.html#swf...uctibleTerrain

Но если захотите городить свой велосипед, то поиск точки в треугольнике, это самое простое из вашей задачи.))

Старый 22.01.2014, 12:45
silin вне форума Посмотреть профиль Посетить домашнюю страницу silin Найти все сообщения от silin
  № 17  
Ответить с цитированием
silin
 
Аватар для silin

блогер
Регистрация: Mar 2003
Адрес: Моск. обл.
Сообщений: 5,269
Записей в блоге: 6
в качестве предположения: может оказаться, что отрисовка в шейп этого многоугольника (без добавления в дисплейЛист) и hitTestPoint обгонят по производительности самописный матанализ
не проверял, но вдруг

Старый 22.01.2014, 13:54
Akopalipsis вне форума Посмотреть профиль Найти все сообщения от Akopalipsis
  № 18  
Ответить с цитированием
Akopalipsis
Banned
[+4 24.02.14]
[+4 07.11.13]
[+ 13.03.14]

Регистрация: Mar 2013
Сообщений: 1,864
Цитата:
Но если захотите городить свой велосипед, то поиск точки в треугольнике, это самое простое из вашей задачи.))
Да, это самое простое. Nape я, как уже писал, использовать не хочу, я учусь, у меня беда с геометрией и алгеброй, вот и приходится учить.
Цитата:
hitTestPoint обгонят по производительности самописный матанализ
я думаю об этом с того момента, как захотел от него отказаться. Проверю скорость, напишу. Всем Спасибо!

Добавлено через 22 минуты
Цитата:
Но если захотите городить свой велосипед, то поиск точки в треугольнике, это самое простое из вашей задачи.))
У меня вообще нет многоугольников, у меня девять прямоугольников, которые меняют координаты при вращении и масштабе вместе с плоскостью.

Старый 22.01.2014, 15:04
Dukobpa3 вне форума Посмотреть профиль Отправить личное сообщение для Dukobpa3 Найти все сообщения от Dukobpa3
  № 19  
Ответить с цитированием
Dukobpa3
 
Аватар для Dukobpa3

блогер
Регистрация: Oct 2010
Адрес: Киев
Сообщений: 1,678
Записей в блоге: 12
Отправить сообщение для Dukobpa3 с помощью Skype™
Ну раз уж мы полезли в рисование шейпов, то вполне ок по скорости может оказаться этот шейп потом сфотографировать в битмапдату и getPixel в нужных координатах взять(ну фигуру заливать одним цветом например, а фон другим, и по цвету глядеть).
гетПиксель полюбому быстрее будет чем хиттест. Но появится дополнительный пункт с отрисовкой, он может перебить эту разницу.
__________________
Кто к нам с чем для чего - тот у нас того от того.

Старый 22.01.2014, 15:09
Akopalipsis вне форума Посмотреть профиль Найти все сообщения от Akopalipsis
  № 20  
Ответить с цитированием
Akopalipsis
Banned
[+4 24.02.14]
[+4 07.11.13]
[+ 13.03.14]

Регистрация: Mar 2013
Сообщений: 1,864
У меня вот как получается - рамку нужно не только отрисовать, но и изменить цвет, чтобы на черном она была белая, а на сером немного серее.. И получается, что если рамку делать как ДО, то появляется несколько лишних отрисовок bmd, но по остальным операциям не чего не сокращается. Вот и получается, что лучше всего рамку иметь только математически, а рисовать её в bmd всего холста через set-getPixel, попутно изменяя цвет.

Создать новую тему Ответ Часовой пояс GMT +4, время: 01:10.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

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

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


 


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


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