Как установить фигуру в центр и отмаштабировать ее?

185
06 октября 2018, 01:10

Как установть фигуру в центр GLCtonrol`а? Использую SharpGL в WPF проекте.

Рендерю треугольник:

private void OpenGLControl_OpenGLDraw(object sender, SharpGL.SceneGraph.OpenGLEventArgs args)
    {
        OpenGL gL = GLControl.OpenGL;
        gL.Clear(OpenGL.GL_COLOR_BUFFER_BIT | OpenGL.GL_DEPTH_BUFFER_BIT); 
        gL.LoadIdentity();
        maxX = Math.Max(AX, Math.Max(BX, CX));
        maxY = Math.Max(AY, Math.Max(BY, CY));
        minX = Math.Min(AX, Math.Min(BX, CX));
        minY = Math.Min(AX, Math.Min(BX, CX));
        maxZ = Math.Max(AZ, Math.Max(BZ, CZ));
        minZ = Math.Min(AZ, Math.Min(BZ, CZ));
        double figureWidht = maxX - minX;
        double figureHeight = maxY - minY;
        double figureSquare = figureWidht * figureHeight;

        double viewPortSquare = GLControl.Width * GLControl.Height;
        gL.Translate(-figureWidht / 2, -figureHeight / 2, -6);//-6 - произвольное число
        gL.Begin(OpenGL.GL_LINES);
        gL.Color(1.0F, 1.0F, 1.0F);
        gL.Vertex((float)AX, (float)AY, (float)AZ);
        gL.Vertex((float)BX, (float)BY, (float)BZ);
        gL.Vertex((float)BX, (float)BY, (float)BZ);
        gL.Vertex((float)CX, (float)CY, (float)CZ);
        gL.Vertex((float)CX, (float)CY, (float)CZ);
        gL.Vertex((float)AX, (float)AY, (float)AZ);
        gL.End();
    }

Как сделать, чтобы фигура всегда была в центре? Вне зависимости от ее вершин? А если фигура выходит за грани viewport`а, то сделать ее меньше и поместить в центр?

Объясняю на кртинке:

READ ALSO
не получается установить сборку Skype4COM

не получается установить сборку Skype4COM

Пытаюсь запустить проект, в котором используется библиотека Skype4COM, но отсутствует референс на неё и она сама тожеПопытка поставить через...

175
Запись данных в файл конфигураций (App.config)

Запись данных в файл конфигураций (App.config)

Пытаюсь записать данные в конфигурационное свойство из приложения(простое консольное приложение) во время выполнения, но получаю исключение

172
C#, сохранение массива как DataGridViewRow?

C#, сохранение массива как DataGridViewRow?

Мне нужно к строке прикрепить не одно значение а список данныхКак это сделать?

168
Построение графика реального времени

Построение графика реального времени

Подскажите простенькую либу для построение графика реального времениИ есть ли разница в каком проекте делать, WPF или WinForm?

146