forum.boolean.name

forum.boolean.name (http://forum.boolean.name/index.php)
-   Blitz3D (http://forum.boolean.name/forumdisplay.php?f=45)
-   -   Управление мышью, аля Drag&Drop (http://forum.boolean.name/showthread.php?t=17325)

DarkMedveD 30.09.2012 15:19

Управление мышью, аля Drag&Drop
 
Друзья, подскажите идею для реализации следующей задачи:

Есть объект, у него есть объектные оси, как на изображении.
Но это не суть. Мне нужно двигать оси при нажатии мышкой на нее.
Вся сложность в том, что я не понимаю, на какие изменять координаты оси, при движении мыши.



Именно по какой формуле рассчитывать координаты.

Nerd 30.09.2012 15:25

Ответ: Управление мышью, аля Drag&Drop
 
Юзай TFormVector (емнип).

Nex 30.09.2012 15:28

Ответ: Управление мышью, аля Drag&Drop
 
Есть пример с этой фигней в примерах Xors'a

DarkMedveD 30.09.2012 15:31

Ответ: Управление мышью, аля Drag&Drop
 
Можно чуть подробнее..?

DarkMedveD 30.09.2012 15:36

Ответ: Управление мышью, аля Drag&Drop
 
Пример посмотрел, но мне бы саму логику процесса понять...

Nerd 30.09.2012 15:54

Ответ: Управление мышью, аля Drag&Drop
 
Цитата:

Сообщение от DarkMedveD (Сообщение 239414)
Пример посмотрел, но мне бы саму логику процесса понять...

xTFormVector ( x,y,z (вектор перемещения) , entity, 0 )
xMoveEntity(entity, xTFormedX(),xTFormedY(),xTFormedZ() )

DarkMedveD 30.09.2012 16:06

Ответ: Управление мышью, аля Drag&Drop
 
Цитата:

Сообщение от Nerd96 (Сообщение 239418)
xTFormVector ( x,y,z (вектор перемещения) , entity, 0 )
xMoveEntity(entity, xTFormedX(),xTFormedY(),xTFormedZ() )

В вектор перемещения какие координаты надо передавать? Я же к мыши это привязываю.

DarkMedveD 30.09.2012 16:11

Ответ: Управление мышью, аля Drag&Drop
 
CameraProject проецирует координаты объекта в 2D, а мне, получается, надо обратный процесс?

Nerd 30.09.2012 16:14

Ответ: Управление мышью, аля Drag&Drop
 
Цитата:

Сообщение от DarkMedveD (Сообщение 239419)
В вектор перемещения какие координаты надо передавать? Я же к мыши это привязываю.

Нормализованный вектор оси умножай на дельту перемещения мыши.

DarkMedveD 30.09.2012 16:19

Ответ: Управление мышью, аля Drag&Drop
 
Ни черта не понимаю.

Дельта мыши - разность текущей позиции и позиции раньше?
Как умножить вектор на дельту?

Nerd 30.09.2012 16:23

Ответ: Управление мышью, аля Drag&Drop
 
Цитата:

Сообщение от DarkMedveD (Сообщение 239423)
Ни черта не понимаю.

Дельта мыши - разность текущей позиции и позиции раньше?
Как умножить вектор на дельту?

;Перемещение по X-оси:

x = xMouseXSpeed()
y = xMouseYSpeed()
c# = (x+y)*й 0.1

xTFormVector(1,0,0, entity,0)

xMoveEntity(entity,xTFormedX()*c, xTFormedY()*c, xTFormedZ()*c)

Как-то так

DarkMedveD 30.09.2012 16:29

Ответ: Управление мышью, аля Drag&Drop
 
Почему в TFormVector передаю (1,0,0)

Что это? Шаг вверх? Как это понять?

Спасибо, уже что-то складывается в голове.

Nerd 30.09.2012 16:30

Ответ: Управление мышью, аля Drag&Drop
 
Цитата:

Сообщение от DarkMedveD (Сообщение 239426)
Почему в TFormVector передаю (1,0,0)

Что это? Шаг вверх? Как это понять?

1,0,0 - X
0,1,0 - Y
0,0,1 - Z

DarkMedveD 30.09.2012 16:34

Ответ: Управление мышью, аля Drag&Drop
 
Понял, спасибо!

DarkMedveD 30.09.2012 17:25

Ответ: Управление мышью, аля Drag&Drop
 
Огромное спасибо, реализовал.

Единственная проблема - если к оси подбираться с другой стороны, то движение инвертируется. С этим как-нибудь можно справиться?


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

vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot