OpenGL вращается вокруг места

Вы можете использовать агрегацию с предложением «иметь» с union all для объединения двух операторов выбора как:

with tab(date, ref, received_qty, issued_qty, remarks) as
(
 select '2017-07-01',112,5,0,'order' union all
 select '2017-07-01',113,3,0,'order' union all
 select '2017-07-02',112,0,4,'issue' union all
 select '2017-07-02',112,2,0,'order' 
)
select date, ref,
       sum(issued_qty) as received_qty,
       sum(received_qty) as issued_qty           
  from tab
 group by date, ref
 having min(remarks) = 'issue'
union all
select date, ref,
       sum(received_qty) as received_qty,
       sum(issued_qty) as issued_qty           
  from tab
 group by date, ref
 having min(remarks) = 'order'
 order by date, ref;

Демо kbd>

6
задан Bhargav Rao 25 December 2018 в 05:42
поделиться

3 ответа

Вам нужно будет выполнить несколько следующих действий:

  • Убедитесь, что gluSphere «направлена» на фиксированную точку, чтобы переместиться вперед относительно сфера приближает вас к центру своей орбиты
  • glTranslatef gluSphere вперед к точке, вокруг которой вы хотите, чтобы она вращалась
  • glRotatef в направлении, в котором вы хотите, чтобы сфера орбита
  • glTranslatef назад так же далеко, как вы пошли вперед

Таким образом, ваша сфера остается на том же расстоянии от центра, но переводится «вокруг» на хорошей орбите.

4
ответ дан 17 December 2019 в 07:09
поделиться

glRotatef умножит текущую матрицу на матрицу вращения. Это может (с учетом правильного вектора) сделать то, что вы пытаетесь.

glTranslatef умножит текущую матрицу на матрицу перевода, которая будет эффективно «перемещать» объект, а не вращать его, так что это не будет тем, что вы хотите.

-2
ответ дан 17 December 2019 в 07:09
поделиться

Переведите в сторону от центра, а затем поверните полностью

2
ответ дан 17 December 2019 в 07:09
поделиться
Другие вопросы по тегам:

Похожие вопросы: