Поворот камеры вокруг точки поворота, рассчитанной по щелчку мыши на экране.C#

Место общения программистов C#
Ответить
Anonymous
 Поворот камеры вокруг точки поворота, рассчитанной по щелчку мыши на экране.

Сообщение Anonymous »

Моя модель перемещается в другое положение на экране после выбора точки поворота 3D-модели.
Я пытаюсь использовать GL.LookAt для реализации вращения вокруг точки поворота функция.
GL.MatrixMode(MatrixMode.Modelview);
Matrix4d viewMatrix = Matrix4d.LookAt(cameraPosition, rotatePoint.point, up);

Matrix4d translateToPivot = Matrix4d.CreateTranslation(-rotatePoint.point);
Matrix4d translateBackFromPivot = Matrix4d.CreateTranslation(rotatePoint.point);

Matrix4d rotationX = Matrix4d.CreateRotationX(MathHelper.DegreesToRadians(-angleY));
Matrix4d rotationY = Matrix4d.CreateRotationY(MathHelper.DegreesToRadians(angleX));

Matrix4d rotationMatrix = rotationY * rotationX;

viewMatrix = translateToPivot * rotationMatrix * translateBackFromPivot * viewMatrix;

GL.LoadMatrix(ref viewMatrix);
SetupViewport();
pco.Render(point_size, ShowOctreeOutline, PointCloudColor, mFrustum);

Функция 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 ... the-screen
Ответить

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

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

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

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

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