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

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

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 08.02.2011, 20:35
evgen4ik вне форума Посмотреть профиль Отправить личное сообщение для evgen4ik Найти все сообщения от evgen4ik
  № 1  
Ответить с цитированием
evgen4ik

Регистрация: Apr 2010
Сообщений: 82
По умолчанию Вращение массива Point вокруг курсора

Знаю, что было много постов о вращении с помощью матриц. Видел, пробовал, не получилось....
Задача немного не тривиальная. Суть вот в чём: приложение - онлайн рисовалка, инструмент - кисть. Рисует с помощью массива линий. Каждая линия имеет постоянный отступ от курсора.

Задача: при рисовании изогнутой линии, поворачивать новые точки для линий вокруг курсора в сторону поворота линии.
Миниатюры
Нажмите на изображение для увеличения
Название: 2zekyfd.jpg
Просмотров: 166
Размер:	28.6 Кб
ID:	25955  

Старый 08.02.2011, 22:03
goodguy вне форума Посмотреть профиль Найти все сообщения от goodguy
  № 2  
Ответить с цитированием
goodguy
Banned
[+1 05.11.11]
[+1 09.08.11]

Регистрация: Jan 2010
Адрес: РФ. Кемеровская область
Сообщений: 3,243
Мой мозг сейчас взорвется. Нельзя ли объяснить по-доступнее?
Цитата:
Рисует с помощью массива линий
Как это? Что это за линии? Координаты линий или графика?
Цитата:
Каждая линия имеет постоянный отступ от курсора.
А это? Что за отступ? Есть хоть какие-то наработки?

Что на счет названия темы, массив не относится к типу DisplayObject, стало быть его нельзя вращать вокруг курсора

Старый 08.02.2011, 22:11
КорДум вне форума Посмотреть профиль Отправить личное сообщение для КорДум Найти все сообщения от КорДум
  № 3  
Ответить с цитированием
КорДум
 
Аватар для КорДум

блогер
Регистрация: Jan 2008
Адрес: syktyvkar
Сообщений: 3,803
Записей в блоге: 10
Эээм. Массив Point вокруг курсора... Линии... Брр. Ткну телепатической энергией в свою давнишнюю темку, авось угадаю: http://www.flasher.ru/forum/showthread.php?t=146411
__________________
тут я

Старый 08.02.2011, 22:52
dimarik вне форума Посмотреть профиль Отправить личное сообщение для dimarik Найти все сообщения от dimarik
  № 4  
Ответить с цитированием
dimarik
.
 
Аватар для dimarik

модератор форума
Регистрация: Sep 2003
Адрес: Москва
Сообщений: 4,630
Записей в блоге: 20
Линии отстоят от пути, который отрисовывает по экрану mouse point, на постоянные значения. Что тут непонятного? )
__________________
Воспитан в TimeZero. Работаю в Mail.ru.

Старый 08.02.2011, 23:13
КорДум вне форума Посмотреть профиль Отправить личное сообщение для КорДум Найти все сообщения от КорДум
  № 5  
Ответить с цитированием
КорДум
 
Аватар для КорДум

блогер
Регистрация: Jan 2008
Адрес: syktyvkar
Сообщений: 3,803
Записей в блоге: 10
Тогда просто поместить их в контейнер, а контейнер заставить бегать за курсором.
__________________
тут я

Старый 08.02.2011, 23:24
dimarik вне форума Посмотреть профиль Отправить личное сообщение для dimarik Найти все сообщения от dimarik
  № 6  
Ответить с цитированием
dimarik
.
 
Аватар для dimarik

модератор форума
Регистрация: Sep 2003
Адрес: Москва
Сообщений: 4,630
Записей в блоге: 20
На всем протяжении периода рисования кистью типа "массив поинтс". Вероятно, можно работать с Graphics.
__________________
Воспитан в TimeZero. Работаю в Mail.ru.

Старый 09.02.2011, 00:50
samana вне форума Посмотреть профиль Отправить личное сообщение для samana Найти все сообщения от samana
  № 7  
Ответить с цитированием
samana
 
Аватар для samana

блогер
Регистрация: Mar 2008
Адрес: Днепропетровск
Сообщений: 1,783
Записей в блоге: 3
Я не уверен, что понял идею. Вы хотите что-бы кисть поворачивалась по направлению рисования? Как на картинке справа?
Название: brush.jpg
Просмотров: 246

Размер: 38.4 Кб

Старый 09.02.2011, 03:00
evgen4ik вне форума Посмотреть профиль Отправить личное сообщение для evgen4ik Найти все сообщения от evgen4ik
  № 8  
Ответить с цитированием
evgen4ik

Регистрация: Apr 2010
Сообщений: 82
Ок. Постараюсь подробнее.
Возьмём одну из множества (массива) линий, которые рисуются вслед за курсором. Для неё есть предидущая точка и последующая (точка, к которой проводится линия). Координаты каждой последующей точки высчитываются с использованием координаты курсора и стабильного отступа от курсора.
Каким образом нужно менять отступ от курсора чтобы получился эффект, показанный на картинке?
Если учесть, что угол между 2-мя соседними векторами известен.
Нужно в идеале математическое решение задачи, т.е. как высчитать изменение координат отступа в зависимости от поворота курсора! или какое-то другое оригинальное решение!

Добавлено через 59 секунд
samana, Да!!!!!!

Добавлено через 2 минуты
dimarik, и что нам это даёт?

Добавлено через 3 минуты
КорДум, не совсем понял вашу мысль!

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

блогер
Регистрация: Dec 2008
Адрес: Israel, Natanya
Сообщений: 4,740
Записей в блоге: 11
За курсором таскается пустой контейнер. По-сути просто меняются его координаты. Он даже не добавляется в список отображения. Когда надо получить координаты точки вызывается localToGlobal у этого контейнера.

Код AS3:
private var spr:Shape;
public function Main()
{
	spr = new Shape();
	spr.x = 100;
	spr.y = 100;
 
	var point:Point = new Point(20, 0);
	var globalPoint:Point = spr.localToGlobal(point);
 
	drawPoint(this.graphics, localPoint.x, localPoint.y);
 
	spr.rotation = 45;
	var globalPoint:Point = spr.localToGlobal(point);
 
	drawPoint(this.graphics, localPoint.x, localPoint.y);
}
 
private function drawPoint(gr:Graphics, pointX, pointY):void
{
	gr.beginFill(0);
	gr.drawCircle(pointX, pointY, 4);
	gr.endFill();
}


Последний раз редактировалось alatar; 09.02.2011 в 12:14.
Старый 09.02.2011, 12:23
-De- вне форума Посмотреть профиль Отправить личное сообщение для -De- Найти все сообщения от -De-
  № 10  
Ответить с цитированием
-De-
 
Аватар для -De-

блогер
Регистрация: Oct 2005
Адрес: Днепродзержинск - город Брежнева и других логопедов
Сообщений: 1,421
Записей в блоге: 4
Отправить сообщение для -De- с помощью ICQ Отправить сообщение для -De- с помощью Skype™
А не задумывались, почему нигде такого инструмента нет?
Рассмотрите такой случай: есть одна точка "кисти", не совпадает с курсором. Есть сперва два положения курсора - первое и второе. Что должно быть нарисовано? Понятно и очевидно =) А теперь у нас появляется третье положение курсора, которое не на одной прямой с первыми двумя, пусть поворот, для наглядности, на 90 градусов. Что должно быть нарисовано?
Если будет внятный ответ на последний вопрос (лучше с картинкой), то я напишу код.
__________________
Бобры отвечают на вопросы не потому, что знают на них ответы; они отвечают потому, что их спрашивают.

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

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

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


 


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


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