|
|
« Предыдущая тема | Следующая тема » |
Опции темы | Опции просмотра |
|
|
|||||
Регистрация: Jun 2010
Сообщений: 42
|
Проверка на принадлежность курсора окружности
Приветствую. Скажите, пожалуйста, как можно проверить или курсор принадлежит окружности? К примеру есть точки на площади и есть условие, если курсор нажимает в эту точку идет проверка, если курсор попал вокруг точки на 10 пикселей то ничего не происходит, а если не попал, то ставится новая точка.
Саму проверку я делаю так: Проверяю или человек уже ставил точку, если не ставил смотрю в массиве или координаты курсора меньше или равны координатам точки + 10 пикселей. Вот с вторым условием у меня почему-то проблемы. Помогите, пожалуйста, составить правильное условие проверки принадлежности. |
|
|||||
Banned
[+1 05.11.11]
[+1 09.08.11] Регистрация: Jan 2010
Адрес: РФ. Кемеровская область
Сообщений: 3,243
|
Можно сделать так,
Высчитать расстояние от курсора до точки по теореме пифагора: var distanceToPointer:Number = Point.distance(new Point(stage.mouseX, stage.mouseY), vashaTochka); if (distanceToPointer < nushnoyeRasstoyaniye) { postavil = 1; } else { postavil = 0; } Для множества точек, думаю тоже не составит особого труда придумать механизм Последний раз редактировалось goodguy; 21.11.2010 в 21:21. |
|
|||||
Регистрация: Jun 2010
Сообщений: 42
|
Как я понимаю, что переменная vashaTochka это либо место точки по X или по Y на площади? Или как?
|
|
|||||
Banned
[+1 05.11.11]
[+1 09.08.11] Регистрация: Jan 2010
Адрес: РФ. Кемеровская область
Сообщений: 3,243
|
Это положение точки и по Х и по У одновременно. По-моему другого и быть не может
|
|
|||||
Регистрация: Jun 2010
Сообщений: 42
|
Никогда просто с Point не работал, поэтому и спрашиваю Спасибо, сейчас попробую
Добавлено через 53 минуты Что-то не работает. Может проблема в том, что у меня как-то не так все организованно в программе? В плане вытаскивания инфы из массива? Может быть такое? |
|
|||||
Banned
[+1 05.11.11]
[+1 09.08.11] Регистрация: Jan 2010
Адрес: РФ. Кемеровская область
Сообщений: 3,243
|
Вполне. Так как я этот код использовал неоднократно. Всегда все работало без каких-либо пролем
|
|
|||||
Регистрация: Jun 2010
Сообщений: 42
|
Сегодня попробовал сделать как Вы сказали, но ничего не получилось, даже не знаю почему. Вы не могли бы выложить рабочий исходник?
|
|
|||||
[+1 28.12.10]
[+1 29.12.10] Регистрация: Aug 2006
Сообщений: 107
|
а что значит не работает? как он себя ведет. поставьте трейсы. выведите значения переменных. это слишком просто код чтобы взять так в наглую и не работать.
попробуйте сделать вот это и написать какой текст выводится когда программа работает не правильно trace("stage.mouseX="+stage.mouseX); trace("stage.mouseY="+stage.mouseY); trace("vashaTochka.x="+vashaTochka.x); trace("vashaTochka.y="+vashaTochka.y); var distanceToPointer:Number = Point.distance(new Point(stage.mouseX, stage.mouseY), vashaTochka); trace("distanceToPointer="+distanceToPointer); if (distanceToPointer < nushnoyeRasstoyaniye) { postavil = 1; } else { postavil = 0; } |
|
|||||
Регистрация: Jun 2010
Сообщений: 42
|
Полностью рабочий код Может кому-нибудь пригодиться Спасибо, все классно работает
import flash.display.Sprite; import flash.events.MouseEvent; var mc_tochka:MovieClip=new MyPoint(); function Main():void { addChild(mc_tochka); mc_tochka.x = 25; mc_tochka.y = 35; stage.addEventListener(MouseEvent.CLICK,ClickOnStage); } function ClickOnStage(event:MouseEvent):void { var vashaTochka:Point = new Point(mc_tochka.x, mc_tochka.y); var distanceToPointer:Number = Point.distance(new Point(stage.mouseX, stage.mouseY), vashaTochka); trace("distanceToPointer="+distanceToPointer); } Main() |
|
|||||
Banned
[+1 05.11.11]
[+1 09.08.11] Регистрация: Jan 2010
Адрес: РФ. Кемеровская область
Сообщений: 3,243
|
|
Часовой пояс GMT +4, время: 12:48. |
|
« Предыдущая тема | Следующая тема » |
Теги |
координаты , курсор , принадлежность |
|
|