pkravt / pipe3

Automatically exported from code.google.com/p/pipe3
0 stars 0 forks source link

C: мышиный интерфейс в ГЛ-сцене #90

Closed GoogleCodeExporter closed 9 years ago

GoogleCodeExporter commented 9 years ago
Итак, погнали (на правах бета-тестера :-)  :

я все же не понимаю как крутится мышой 
сцена.
при горизонтальном движении мыши поворот 
идет вокруг оси Y примерно.
и порой при вертикальном перемещении мыши 
поворачивается вокруг X...
Хорошо бы это довести до такого же 
состояния как в Дельфи.

В Д-версии у нас сделано так:

Вертикальное перемещение мыши 
поворачивает трубу вниз и вверх, причем 
останавливается сверху и снизу (когда ось Z 
направлена почти
что В или ИЗ экрана). В принципе это 
нормально. Это, кроме всего прочего,
показывает, что ось Z выделена 
(вертикальное направление).

Горизонтальное перемещение мыши крутит 
модель вокруг оси Z бесконечно,
т.е. "многооборотно".
Сделано это в конечном счете через 
TGLBaseSceneObject.MoveObjectAround,
в котором вычисляется новое положение 
камеры при повороте вокруг ее цели (Target).

Про перетаскивание правой кнопкой я пока 
молчу - оно происходит наоборот.
В Дельфи я специально добивался плавного 
перемещения с такой же скоростью,
как ползет курсор мыши (хотя все равно 
модель едет чуть-чуть быстрее, но это не 
заметно).

Original issue reported on code.google.com by pkr...@gmail.com on 12 Mar 2011 at 5:24

GoogleCodeExporter commented 9 years ago
Поворот наполовину заработал. Перемещение 
тоже, вполне годится.
Но появились новые проблемы:

. поворот при вертикальном движении мыши 
должен быть ну вокруг оси Y,
  а вокруг горизонтальной прямой в плоскости экрана. Это получилось сделать
  с горизонтальным поворотом - он крутит модель вокруг вертикальной оси,
  лежащей в плоскости экрана.
  перемещение правой кнопкой работает не так, как в Дельфи, но вполне приемлемо,
  так что его менять не надо.
. при построении каркаса сбиты оси: вместо Х 
используется Y, вместо Y - Z,
  вместо Z - X. 
. стрелки осей в левом нижнем углу не 
соответствуют главной сцене, они повернуты.

Original comment by pkr...@gmail.com on 27 May 2011 at 12:04

GoogleCodeExporter commented 9 years ago
мышиные повороты сделал. теперь буду 
воевать с перемещением и зумом.

Original comment by pkr...@gmail.com on 2 Jun 2011 at 4:49

GoogleCodeExporter commented 9 years ago
Все, мышиный интерфейс добил, заодно 
почистил PipeGLControl от всякого мусора.

Оси настроил - они были сбиты (вместо Х в 
главной сцене рисовался Y и т.п.)
Теперь рисуются правильно, но при этом 
труба сама отрисовывается наоборот :-)
Низ - это ось Z. А она баки рисует вдоль Y...

Стрелки осей в маленькой сцене тоже 
поправил - крутяться вместе с основными :-)

Original comment by pkr...@gmail.com on 2 Jun 2011 at 6:54

GoogleCodeExporter commented 9 years ago
Баки рисуются по Z (Rev.74)

Original comment by mrv...@gmail.com on 3 Jun 2011 at 8:36

GoogleCodeExporter commented 9 years ago

Original comment by pkr...@gmail.com on 6 Jun 2011 at 3:16

GoogleCodeExporter commented 9 years ago
Иногда зум колесом отдаляет (внезапно) 
сцену настолько, что становится не видно 
модель.

Original comment by polta...@gmail.com on 7 Jun 2011 at 12:33

GoogleCodeExporter commented 9 years ago
Это потому что у некоторых колесо размером 
больше экрана ! :-)))
А вообще, я коэффициенты зума сильно 
увеличил по сравнению с Дельфи.
Почему-то очень медленно зумилось с 
родными значениями...
Можно поменять, если надо.

Original comment by pkr...@gmail.com on 7 Jun 2011 at 3:32

GoogleCodeExporter commented 9 years ago
Предлагаю закрыть эту тему.
зум, повороты и смещение работают 
нормально.
ZoomALL я сделал, осталось только прикрутить к 
GLControl MainBranch :-)))

Original comment by pkr...@gmail.com on 11 Sep 2011 at 6:03