Вращение объекта вокруг фиксированной точки, рассчитанной по положению щелчка мыши.C#

Место общения программистов C#
Ответить Пред. темаСлед. тема
Anonymous
 Вращение объекта вокруг фиксированной точки, рассчитанной по положению щелчка мыши.

Сообщение Anonymous »

Моя модель продолжает прыгать по экрану монитора после следующих действий:
  • Выберите точку.
  • Поверните.
  • Выберите другую точку.
Интересно, что-то не так с моими преобразованиями.
Вот вот как это выглядит:
Видео
Я пытался следовать порядку: Перевести(x,y,z) -> Повернуть -> Перевести(-x,-y,- z)
Вот код
GL.MatrixMode(MatrixMode.Modelview);
GL.Translate(transX, transY, 0);

GL.PushMatrix();
if (rotatePoint != null)
{
// Draw clicked point
GL.PointSize(30);
GL.Begin(PrimitiveType.Points);
GL.Color3(1.0, 0.0, 0.0);
GL.Vertex3(rotatePoint.point.X, rotatePoint.point.Y, rotatePoint.point.Z);
GL.End();

// Translate to the rotatePoint
GL.Translate(rotatePoint.point.X, rotatePoint.point.Y, rotatePoint.point.Z);

GL.Rotate(angleY, 1, 0, 0);
GL.Rotate(-angleX, 0, 1, 0);

// Translate back
GL.Translate(-rotatePoint.point.X, -rotatePoint.point.Y, -rotatePoint.point.Z);
}

SetupViewport();
pco.Render(point_size, ShowOctreeOutline, PointCloudColor, mFrustum);
GL.PopMatrix();

SetupViewport:
int w = glControl1.ClientSize.Width;
int h = glControl1.ClientSize.Height;
GL.MatrixMode(MatrixMode.Projection);
GL.LoadIdentity();
float aspect = w / (float)h;
float n = scaling;
float left = -n * 0.5f, right = n * 0.5f, down = -n * 0.5f / aspect, up = n * 0.5f / aspect;
if (w

Подробнее здесь: https://stackoverflow.com/questions/787 ... k-position
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Поворот камеры вокруг точки поворота, рассчитанной по щелчку мыши на экране.
    Anonymous » » в форуме C#
    0 Ответы
    26 Просмотры
    Последнее сообщение Anonymous
  • Поворот камеры вокруг точки поворота, рассчитанной по щелчку мыши на экране.
    Anonymous » » в форуме C#
    0 Ответы
    31 Просмотры
    Последнее сообщение Anonymous
  • Рассчитайте вращение точки вокруг другой точки на Земле (или сфере)
    Anonymous » » в форуме C#
    0 Ответы
    5 Просмотры
    Последнее сообщение Anonymous
  • Рассчитайте вращение точки вокруг другой точки на Земле (или сфере)
    Anonymous » » в форуме C#
    0 Ответы
    6 Просмотры
    Последнее сообщение Anonymous
  • Рассчитайте вращение точки вокруг другой точки на Земле (или сфере)
    Anonymous » » в форуме C#
    0 Ответы
    4 Просмотры
    Последнее сообщение Anonymous

Вернуться в «C#»