![]() |
Как нарисовать линию от мувика к курсору мыши.
Здравствуйте есть такая задача нужно нарисовать линию от мувика к указателю мышки в момент ее нажатия. Линия должна рисоваться не сразу, а последовательно с определенной скоростью скажем 2 пикселя в секунду. Можно такое сделать? Подскажите, пожалуйста в каком направлении копать. Заранее спасибо.
|
если нужно знать только в каком направлении копать, то:
Я бы для начала создал две переменные с типом данных Point одну для хранения начального положения мувика (как бы точки отсчета), другую в качестве указателя куда должна двигаться линия. Затем, слушатель MOUSE_DOWN и обработчик этого события. Внутри функции обработчика бы добавил ENTER_FRAME который будет рисовать линию покадрово. Так же назначил бы координаты первой точки равные координатам мувика. Внутри энтер фрейма, применив немного тригонометрии расчитал бы угол от начальной точки до курсора Код AS3:
Код AS3:
А остановил бы рисование чем то вроде этого: Код AS3:
|
Спасибо большое за ориентир с меня пиво. Тригонометрия сила.
|
goodguy, для таких целей существуют векторы.
Код AS3:
Код AS3:
|
Действительно, не заметил, что забыл поставить + перед равно. Но в остальном код правильный.
Имелось в виду это: Код AS3:
На счет векторов согласен, но для новичка это будет сложнее. Я сам до сих пор не особо соображаю в векторах |
Цитата:
Еще ведь нужно не забыть, что за X, а что за Y отвечает, и угол в градусах или радианах o_O |
Косинус и синус вычисляет программа, не самому же заморачиваться :D . Откуда взять угол понятно, все остальное просто.
если использовать плюсы, то косинус - х, синус - у. Угол всегда в радианах хз, мне кажется это проще :D , может я не прав |
Оффтоп: лично мне удобнее икс с иксом и игрек с игреком соотносить, чем вспоминать, что отвечает за X: синус или косинус. С векторами все прозрачнее.
А так: обе реализации правильные, есть из чего выбрать ) |
Вы шутите что ли?! Раздобыть угол из координат вектора, чтобы потом снова добывать координаты вектора из угла 0о чему молодежь учите!
Все верно i.o. говорит. Нашли единичный вектор в нужном направлении и в цикле умножаем его на длину, растущую от нуля до изначальной дистанции. |
К стыду своему, никогда не работал с вектором, обходясь тригонометрическими формулами. Пример заинтересовал, спасибо!
Попробовал у себя. Вдруг кому пригодится: Код AS3:
|
| Часовой пояс GMT +4, время: 20:31. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.