|
30.09.2012, 15:19
|
#1
|
ПроЭктировщик
Регистрация: 26.12.2008
Адрес: Питер
Сообщений: 151
Написано 5 полезных сообщений (для 6 пользователей)
|
Управление мышью, аля Drag&Drop
Друзья, подскажите идею для реализации следующей задачи:
Есть объект, у него есть объектные оси, как на изображении.
Но это не суть. Мне нужно двигать оси при нажатии мышкой на нее.
Вся сложность в том, что я не понимаю, на какие изменять координаты оси, при движении мыши.
Именно по какой формуле рассчитывать координаты.
__________________
Фантазия плохого программиста ограничивается его знанием языка. Фантазия хорошего программиста ограничивается возможностями языка и компилятором. Фантазия гениального программиста не ограничивается ничем.
|
(Offline)
|
|
30.09.2012, 15:25
|
#2
|
Чудо-кот
Регистрация: 22.02.2011
Сообщений: 901
Написано 480 полезных сообщений (для 1,471 пользователей)
|
Ответ: Управление мышью, аля Drag&Drop
Юзай TFormVector (емнип).
|
(Offline)
|
|
30.09.2012, 15:28
|
#3
|
Гигант индустрии
Регистрация: 13.09.2008
Сообщений: 2,893
Написано 1,185 полезных сообщений (для 3,298 пользователей)
|
Ответ: Управление мышью, аля Drag&Drop
Есть пример с этой фигней в примерах Xors'a
|
(Offline)
|
|
30.09.2012, 15:31
|
#4
|
ПроЭктировщик
Регистрация: 26.12.2008
Адрес: Питер
Сообщений: 151
Написано 5 полезных сообщений (для 6 пользователей)
|
Ответ: Управление мышью, аля Drag&Drop
Можно чуть подробнее..?
__________________
Фантазия плохого программиста ограничивается его знанием языка. Фантазия хорошего программиста ограничивается возможностями языка и компилятором. Фантазия гениального программиста не ограничивается ничем.
|
(Offline)
|
|
30.09.2012, 15:36
|
#5
|
ПроЭктировщик
Регистрация: 26.12.2008
Адрес: Питер
Сообщений: 151
Написано 5 полезных сообщений (для 6 пользователей)
|
Ответ: Управление мышью, аля Drag&Drop
Пример посмотрел, но мне бы саму логику процесса понять...
__________________
Фантазия плохого программиста ограничивается его знанием языка. Фантазия хорошего программиста ограничивается возможностями языка и компилятором. Фантазия гениального программиста не ограничивается ничем.
|
(Offline)
|
|
30.09.2012, 15:54
|
#6
|
Чудо-кот
Регистрация: 22.02.2011
Сообщений: 901
Написано 480 полезных сообщений (для 1,471 пользователей)
|
Ответ: Управление мышью, аля Drag&Drop
Сообщение от DarkMedveD
Пример посмотрел, но мне бы саму логику процесса понять...
|
xTFormVector ( x,y,z (вектор перемещения) , entity, 0 )
xMoveEntity(entity, xTFormedX(),xTFormedY(),xTFormedZ() )
|
(Offline)
|
|
30.09.2012, 16:06
|
#7
|
ПроЭктировщик
Регистрация: 26.12.2008
Адрес: Питер
Сообщений: 151
Написано 5 полезных сообщений (для 6 пользователей)
|
Ответ: Управление мышью, аля Drag&Drop
Сообщение от Nerd96
xTFormVector ( x,y,z (вектор перемещения) , entity, 0 )
xMoveEntity(entity, xTFormedX(),xTFormedY(),xTFormedZ() )
|
В вектор перемещения какие координаты надо передавать? Я же к мыши это привязываю.
__________________
Фантазия плохого программиста ограничивается его знанием языка. Фантазия хорошего программиста ограничивается возможностями языка и компилятором. Фантазия гениального программиста не ограничивается ничем.
|
(Offline)
|
|
30.09.2012, 16:11
|
#8
|
ПроЭктировщик
Регистрация: 26.12.2008
Адрес: Питер
Сообщений: 151
Написано 5 полезных сообщений (для 6 пользователей)
|
Ответ: Управление мышью, аля Drag&Drop
CameraProject проецирует координаты объекта в 2D, а мне, получается, надо обратный процесс?
__________________
Фантазия плохого программиста ограничивается его знанием языка. Фантазия хорошего программиста ограничивается возможностями языка и компилятором. Фантазия гениального программиста не ограничивается ничем.
|
(Offline)
|
|
30.09.2012, 16:14
|
#9
|
Чудо-кот
Регистрация: 22.02.2011
Сообщений: 901
Написано 480 полезных сообщений (для 1,471 пользователей)
|
Ответ: Управление мышью, аля Drag&Drop
Сообщение от DarkMedveD
В вектор перемещения какие координаты надо передавать? Я же к мыши это привязываю.
|
Нормализованный вектор оси умножай на дельту перемещения мыши.
|
(Offline)
|
|
30.09.2012, 16:19
|
#10
|
ПроЭктировщик
Регистрация: 26.12.2008
Адрес: Питер
Сообщений: 151
Написано 5 полезных сообщений (для 6 пользователей)
|
Ответ: Управление мышью, аля Drag&Drop
Ни черта не понимаю.
Дельта мыши - разность текущей позиции и позиции раньше?
Как умножить вектор на дельту?
__________________
Фантазия плохого программиста ограничивается его знанием языка. Фантазия хорошего программиста ограничивается возможностями языка и компилятором. Фантазия гениального программиста не ограничивается ничем.
|
(Offline)
|
|
30.09.2012, 16:23
|
#11
|
Чудо-кот
Регистрация: 22.02.2011
Сообщений: 901
Написано 480 полезных сообщений (для 1,471 пользователей)
|
Ответ: Управление мышью, аля Drag&Drop
Сообщение от DarkMedveD
Ни черта не понимаю.
Дельта мыши - разность текущей позиции и позиции раньше?
Как умножить вектор на дельту?
|
;Перемещение по X-оси:
x = xMouseXSpeed()
y = xMouseYSpeed()
c# = (x+y)* й 0.1
xTFormVector(1,0,0, entity,0)
xMoveEntity(entity,xTFormedX()*c, xTFormedY()*c, xTFormedZ()*c)
Как-то так
|
(Offline)
|
|
30.09.2012, 16:29
|
#12
|
ПроЭктировщик
Регистрация: 26.12.2008
Адрес: Питер
Сообщений: 151
Написано 5 полезных сообщений (для 6 пользователей)
|
Ответ: Управление мышью, аля Drag&Drop
Почему в TFormVector передаю (1,0,0)
Что это? Шаг вверх? Как это понять?
Спасибо, уже что-то складывается в голове.
__________________
Фантазия плохого программиста ограничивается его знанием языка. Фантазия хорошего программиста ограничивается возможностями языка и компилятором. Фантазия гениального программиста не ограничивается ничем.
|
(Offline)
|
|
30.09.2012, 16:30
|
#13
|
Чудо-кот
Регистрация: 22.02.2011
Сообщений: 901
Написано 480 полезных сообщений (для 1,471 пользователей)
|
Ответ: Управление мышью, аля Drag&Drop
Сообщение от DarkMedveD
Почему в TFormVector передаю (1,0,0)
Что это? Шаг вверх? Как это понять?
|
1,0,0 - X
0,1,0 - Y
0,0,1 - Z
|
(Offline)
|
|
30.09.2012, 16:34
|
#14
|
ПроЭктировщик
Регистрация: 26.12.2008
Адрес: Питер
Сообщений: 151
Написано 5 полезных сообщений (для 6 пользователей)
|
Ответ: Управление мышью, аля Drag&Drop
Понял, спасибо!
__________________
Фантазия плохого программиста ограничивается его знанием языка. Фантазия хорошего программиста ограничивается возможностями языка и компилятором. Фантазия гениального программиста не ограничивается ничем.
|
(Offline)
|
|
30.09.2012, 17:25
|
#15
|
ПроЭктировщик
Регистрация: 26.12.2008
Адрес: Питер
Сообщений: 151
Написано 5 полезных сообщений (для 6 пользователей)
|
Ответ: Управление мышью, аля Drag&Drop
Огромное спасибо, реализовал.
Единственная проблема - если к оси подбираться с другой стороны, то движение инвертируется. С этим как-нибудь можно справиться?
__________________
Фантазия плохого программиста ограничивается его знанием языка. Фантазия хорошего программиста ограничивается возможностями языка и компилятором. Фантазия гениального программиста не ограничивается ничем.
|
(Offline)
|
|
Ваши права в разделе
|
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 02:34.
|