Форум программистов, компьютерный форум, киберфорум
C# Windows Forms
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/7: Рейтинг темы: голосов - 7, средняя оценка - 5.00
0 / 0 / 0
Регистрация: 01.04.2016
Сообщений: 2

Отображение графика при изменении размера формы в OpenGL

06.04.2016, 11:20. Показов 1582. Ответов 2
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
График зачастую "съедает" при растягивании/сжатии формы.(см. вложения).
Ниже код события изменения размера, где AnT - это SimpleOpenGLControl

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
 private void Form1_SizeChanged(object sender, EventArgs e)
        {
            PointInGrap.Stop();
           
 
            AnT.Width = this.Width - 16;
            AnT.Height = this.Height - 39;
 
            // установка порта вывода 
            Gl.glViewport(0, 0, AnT.Width, AnT.Height);
 
            // активация проекционной матрицы 
            Gl.glMatrixMode(Gl.GL_PROJECTION);
            // очистка матрицы 
            Gl.glLoadIdentity();
 
            // определение параметров настройки проекции в зависимости от размеров сторон элемента AnT. 
            if ((float)AnT.Width <= (float)AnT.Height)
            {
 
                ScreenW = 30.0 *  ((float)AnT.Height / (float)AnT.Width);
                ScreenH = 30.0;
                Glu.gluOrtho2D(12,ScreenW, 14, ScreenH);
 
            }
            else
            {
                ScreenW = 30;
                ScreenH = 30.0 * (float)AnT.Width / (float)AnT.Height;
                Glu.gluOrtho2D(12, 30.0 * (float)AnT.Width / (float)AnT.Height, 14, 30.0);
            }
 
            // сохранение коэффициентов, которые нам необходимы для перевода координат указателя в оконной системе в координаты, 
            // принятые в нашей OpenGL сцене 
            devX = (float)ScreenW / (float)AnT.Width;
            devY = (float)ScreenH / (float)AnT.Height;
 
            // установка объектно-видовой матрицы 
            Gl.glMatrixMode(Gl.GL_MODELVIEW);
 
            // старт счетчика, отвечающего за вызов функции визуализации сцены 
            PointInGrap.Start();
 
            Gl.glLoadIdentity();
        }
Необходимо понять закономерность и реализовать равномерное растягивание
Миниатюры
Отображение графика при изменении размера формы в OpenGL   Отображение графика при изменении размера формы в OpenGL   Отображение графика при изменении размера формы в OpenGL  

0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
06.04.2016, 11:20
Ответы с готовыми решениями:

Глючат элементы формы при изменении размера формы
Здрасти... Создал форму внутри которой свойством Duck привезал элементы на растяжку. Но при изменении размера формы они лишь через пол...

Растягивание элементов управления при изменении размера формы
Имеется игра пятнашки, клетки заданы как двумерный массив кнопок, стоит задача увеличивать все это в размере, если ставить anchor на...

Изменение размеров pictureBox при изменении размера формы
Всем привет! Начинаю разбираться в С#. Нужно чтобы при изменении формы изменялись размеры pictureBoxов. Их 2 на форме,с помошью Anchor не...

2
 Аватар для ViterAlex
8952 / 4864 / 1886
Регистрация: 11.02.2013
Сообщений: 10,246
07.04.2016, 10:24
Используй контейнер TableLayoutPanel и Dock = Fill
0
0 / 0 / 0
Регистрация: 01.04.2016
Сообщений: 2
07.04.2016, 18:57  [ТС]
ViterAlex, Дело в том, что сам элемент SimpleOpenGLControl и так закреплен на панели, а свойству Dock присвоено Fill.
И он то как раз растягивается. Проблема в самом графике.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
07.04.2016, 18:57
Помогаю со студенческими работами здесь

Масштабирование строк DrawString при изменении размера формы
Добрый день. Отрисовал мне нужную табличку на компоненте РictureBox с помощью линий. Потом вывел текст в нужные мне ячейки string...

Сохранение пропорций контролов при изменении размера формы
На форме 4 контрола. Как настроить dock и anchor, чтобы пропорции сохранялись при любом размере формы?

Смещение всех компонентов при изменении размера рамки/формы
Хочу сделать так, чтобы когда меняю размер рамки все компоненты смещались. Если сделаю форму меньше или больше стандартного значения, то...

Как растянуть колонки listView при изменении размера формы
Как растянуть колонки при изменении размера формы. Видел это в одной программе, но сам не понял как это сделать

Дёргается нижняя граница ListBox-а при изменении размера формы
Набросал каркас приложения. Попробуйте по изменять размер формы, станет заметно что нижняя граница ListBox-а дёргается. Не могли бы...


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
Программный контроль заполнения реквизита табличной части документа
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: реализовать контроль заполнения реквизита "ПричинаСписания". . .
wmic не является внутренней или внешней командой
Maks 02.04.2026
Решение: DISM / Online / Add-Capability / CapabilityName:WMIC~~~~ Отсюда: https:/ / winitpro. ru/ index. php/ 2025/ 02/ 14/ komanda-wmic-ne-naydena/
Программная установка даты и запрет ее изменения
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: при создании документов установить период списания автоматически. . .
Вывод данных в справочнике через динамический список
Maks 01.04.2026
Реализация из решения ниже выполнена на примере нетипового справочника "Спецтехника" разработанного в конфигурации КА2. Задача: вывести данные из ТЧ нетипового документа. . .
Программное заполнения текстового поля в реквизите формы документа
Maks 01.04.2026
Алгоритм из решения ниже реализован на нетиповом документе "ВыдачаОборудованияНаСпецтехнику" разработанного в конфигурации КА2, в дополнении к предыдущему решению. На форме документа создается. . .
К слову об оптимизации
kumehtar 01.04.2026
Вспоминаю начало 2000-х, университет, когда я писал на Delphi. Тогда среди программистов на форумах активно обсуждали аккуратную работу с памятью: нужно было следить за переменными, вовремя. . .
Идея фильтра интернета (сервер = слой+фильтр).
Hrethgir 31.03.2026
Суть идеи заключается в том, чтобы запустить свой сервер, о чём я если честно мечтал давно и давно приобрёл книгу как это сделать. Но не было причин его запускать. Очумелые учёные напечатали на. . .
Модель здравосоХранения 6. ESG-повестка и устойчивое развитие; углублённый анализ кадрового бренда
anaschu 31.03.2026
В прикрепленном документе раздумья о том, как можно поменять модель в будущем
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru