Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > .NET Frameworks (точка нет фреймворки) > C# (си шарп)
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 21.02.2013, 18:57   #1
volery
Пользователь
 
Регистрация: 02.04.2010
Сообщений: 18
Вопрос C#+OpenGL

У меня в программе нарисованы 2 линии допустим. С помощью glTranslatef одна из линий перемещается по оси Y а другая пропадает. Как сделать что бы другая линия оставалась на месте?
volery вне форума Ответить с цитированием
Старый 21.02.2013, 20:36   #2
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

рисовать две линии.

или не очищать буфер.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 21.02.2013, 20:46   #3
volery
Пользователь
 
Регистрация: 02.04.2010
Сообщений: 18
По умолчанию

Цитата:
Сообщение от Пепел Феникса Посмотреть сообщение
рисовать две линии.

или не очищать буфер.
Если не очищать буфер то при движении линии будет оставаться эта линия на каждом шаге который я сделал
volery вне форума Ответить с цитированием
Старый 21.02.2013, 20:56   #4
phomm
personality
Старожил
 
Аватар для phomm
 
Регистрация: 28.04.2009
Сообщений: 2,882
По умолчанию

Код:
glPushMatrix();
//рисуем первую
glPopMatrix();
//рисуем вторую
Нэ ?
phomm вне форума Ответить с цитированием
Старый 22.02.2013, 00:31   #5
volery
Пользователь
 
Регистрация: 02.04.2010
Сообщений: 18
По умолчанию

Нигде не могу найти пример про glPushMatrix иglPopMatrix.
Из того что нашел понял что надо вот так:

Код:
case Keys.W:
                    Gl.glClear(Gl.GL_COLOR_BUFFER_BIT | Gl.GL_DEPTH_BUFFER_BIT);
                    Gl.glPushMatrix();
                    Gl.glTranslatef(0, 0.1F, 0);
                    Gl.glPopMatrix();
                    test();                
                    drawObject();
                    winOG.Invalidate();
                    break;
Но все равно одна линия пропадает
volery вне форума Ответить с цитированием
Старый 22.02.2013, 00:41   #6
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

что делают ваши функции?
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 22.02.2013, 00:50   #7
volery
Пользователь
 
Регистрация: 02.04.2010
Сообщений: 18
По умолчанию

Ну при нажатии клавиши "W" двигается координатная сетка в верх и тем самым сдвигает одну из линий. Вот код линии:
points = new PointF[2];
points[0].X = 2F; points[0].Y = 2F;
points[1].X = 2F; points[1].Y = 6F;
volery вне форума Ответить с цитированием
Старый 22.02.2013, 06:36   #8
phomm
personality
Старожил
 
Аватар для phomm
 
Регистрация: 28.04.2009
Сообщений: 2,882
По умолчанию

Укажите, где Ваш код соответствует моему ?
Код:
Gl.glPushMatrix();
Gl.glTranslatef(0, 0.1F, 0);
Gl.glPopMatrix();
"рисуем первую" != Gl.glTranslatef(0, 0.1F, 0);

Киньте уже проект архивом, чего вокруг-то ходить.

И начните уже, наконец, читать NeHe хотя бы.
phomm вне форума Ответить с цитированием
Старый 22.02.2013, 16:12   #9
volery
Пользователь
 
Регистрация: 02.04.2010
Сообщений: 18
По умолчанию

Вроде все просто. Но не пойму, может у меня что то в какой то части кода не так.
Вложения
Тип файла: rar ab.rar (32.1 Кб, 17 просмотров)
volery вне форума Ответить с цитированием
Старый 22.02.2013, 22:07   #10
phomm
personality
Старожил
 
Аватар для phomm
 
Регистрация: 28.04.2009
Сообщений: 2,882
По умолчанию

А такой подход (вложение) не проще будет ?
Зачем Вам в принципе возня с матрицами ( работа в "мировом" пространстве, тот же glTranslate, вместо более подходящей здесь работы с каждым отдельным объектом) , если задача решаема , в целом без них ? Если же их надо, их надо как-то хранить, следить за ними и за матричным стеком - сперва теорию бы надо Вам подучить, потом уж за матрицы.
Вложения
Тип файла: zip ab1.zip (51.4 Кб, 14 просмотров)
phomm вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Qt+OpenGL. Qt "не видит" функции OpenGL EnterFix Qt и кроссплатформенное программирование С/С++ 4 29.01.2013 18:59
C++ OpenGL Kukurudza Общие вопросы C/C++ 4 08.02.2012 18:48
OpenGl Defunate Общие вопросы Delphi 0 10.12.2011 16:07
OpenGl macintoshka12 Общие вопросы C/C++ 2 21.04.2010 12:59
OpenGL в С# LeGAl Общие вопросы .NET 0 30.04.2009 02:15