Форум программистов, компьютерный форум, киберфорум
Наши страницы
OpenGL
Войти
Регистрация
Восстановить пароль
 
kesean
273 / 272 / 108
Регистрация: 04.09.2010
Сообщений: 638
Завершенные тесты: 1
#1

Выравнивание сцены по центру холста glOrto - OpenGL

24.01.2017, 19:26. Просмотров 157. Ответов 0
Метки нет (Все метки)

Рисую прямоугольник с центром НЕ в начале координат. С помощью glOrto пытаюсь сдвинуть его в центр холста:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
        private void SetCameraTest(double canvas_width, double canvas_heigth)
        {
            double minx = -100;
            double miny = -30;
            double maxx = 10;
            double maxy = 500;
            double nearx = maxx - minx;
            double neary = maxy - miny;
            if (nearx > neary)
            {
                nearXmin = minx / (nearx / neary);
                nearXmax = maxx / (nearx / neary);
                nearYmin = miny;
                nearYmax = maxy;
            }
            else
            {
                nearXmin = minx;
                nearXmax = maxx;
                nearYmin = miny / (neary / nearx);
                nearYmax = maxy / (neary / nearx);
            }
            double margin = 10;
            nearXmin -= margin;
            nearYmin -= margin;
            nearXmax += margin;
            nearYmax += margin;
 
            Gl.glViewport(0, 0, (int)canvas_width, (int)canvas_heigth);
            Gl.glMatrixMode(Gl.GL_PROJECTION);
            Gl.glLoadIdentity();
            if (canvas_width > canvas_heigth)
                Gl.glOrtho(
                    nearXmin * (canvas_width / canvas_heigth),
                    nearXmax * (canvas_width / canvas_heigth),
                    nearYmax,
                    nearYmin,
                    -1,
                    1);
            else
                Gl.glOrtho(
                    nearXmin,
                    nearXmax,
                    nearYmax * (canvas_heigth / canvas_width),
                    nearYmin * (canvas_heigth / canvas_width),
                    -1,
                    1);
            Gl.glMatrixMode(Gl.GL_MODELVIEW);
 
            RenderQuadTest(minx, maxx, miny, maxy);
        }
        private void RenderQuadTest(double x1, double x2, double y1, double y2)
        {
            Gl.glClear(Gl.GL_COLOR_BUFFER_BIT | Gl.GL_DEPTH_BUFFER_BIT);
 
            Gl.glLoadIdentity();
            Gl.glColor3f(1, 0, 1);
            Gl.glBegin(Gl.GL_QUADS);
            Gl.glVertex3d(x1, y1, 0);
            Gl.glVertex3d(x2, y1, 0);
            Gl.glVertex3d(x2, y2, 0);
            Gl.glVertex3d(x1, y2, 0);
            Gl.glEnd();
        }
Судя по всему, что-то я в glOrto не понимаю, так как не центрируется:
Выравнивание сцены по центру холста glOrto
PS Надо именно ортогональная проекция.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
24.01.2017, 19:26
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Выравнивание сцены по центру холста glOrto (OpenGL):

Выравнивание по центру холста при рисовании в PHP
Доброго времени суток! Генерирую с помощью PHP изображение серым фона и с...

Выравнивание Canvas-холста
Возможно ли оно? не нашел информации если оно не возможно, то можно ли...

Выравнивание по центру
<style type="text/css"> body{ margin: 0 auto; } .lemon { width:...

Выравнивание по центру
привет, помогите чтобы текст по центру писался........ уже час не могу...

Выравнивание по центру
Добрый день Подскажите пожалуйста, в самом низу с левой стороны есть кнопки...

Выравнивание по центру
Я делаю меню для html страницы, но не как немого меню поставить по середине. ...

0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
24.01.2017, 19:26
Привет! Вот еще темы с решениями:

Выравнивание по центру
Размещаю кнопку для печати страницы, в хроме кнопка показывается по центру...

Выравнивание по центру
Суть вот в чем, есть ширина активного окна (допустим пусть будет int width), и...

Выравнивание по центру
Подскажите пожалуйста, как выровнять по центру? Если убрать float left картинки...

Выравнивание по центру
Не могу сделать так, чтобы панель с кнопка выравнивалась по вертикали. Прошу...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru