На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
! Правила раздела "Программирование графики"
1) Данный раздел предназначен для обсуждения проблем, возникающих при программировании задач, связанных с чтением, сохранением, обработкой, созданием, отрисовкой графической информации (в том числе - 3D [OpenGL, Direct3D] и анимации [в т.ч. VFW, DirectShow, OpenDML]).
Флэш обсуждают здесь!.

2) Если вы хотите получить совет для конкретной платформы/языка программирования, обязательно укажите их в вопросе.

3) Уважаемые новички! Мы приветствуем Ваше желание научить всех посетителей раздела правильному программированию. Но огромная просьба, перед тем, как писать поучения в старых (последний ответ - "старее" месяца, а особенно, если вопрошавший не появляется на форуме уже не первый месяц, в чем можно убедиться в его профиле) темах, хорошо подумать, будет ли кому-нибудь, кроме Вас cамих, это интересно.



Ваше мнение о модераторах: user posted imageBarazuk, user posted imageOpenGL, user posted imageMikle
Модераторы: OpenGL, Mikle
  
> gluUnproject выдает GL_FALSE , Проблема с функцией OpenGL (в Delphi)
    Товарищи, решаю задачу перехода по карте в точку, задаваемую кликом мышки. Пока не масштабирую (чтобы можно было перемещаться в дальние области или более точно) картинку функцией glScalef все нормально, стоит изменить масштаб и кликнуть, gluUnproject выдает GL_FALSE, безумные значения wX, wY, что-нибудь в степени +305 или -287, соответственно, никуда не идем. Может я где чего забыл?

    ExpandedWrap disabled
                glGetIntegerv(GL_VIEWPORT,@Viewport);
                glGetDoublev(GL_MODELVIEW_MATRIX,@MVmatrix);
                glGetDoublev(GL_PROJECTION_MATRIX, @Projmatrix);
               //viewport[3] - высота окна в пикселях, редбук стр. 100-101
               //у нас задана квадратная область вывода (не окна!), ширина = высота, можно написать ClientWidth
                realY:= ClientWidth - Y - 561;
               // realY:= Viewport[3] - Y - 561;
                Caption:= 'X = '+ IntToStr(X)+ ' Y = '+IntToStr(realY);
                if gluUnProject(X, realY,0.0,@MVmatrix,@Projmatrix,@viewport,wX,wY,wZ) = GL_TRUE then
                begin
                   pX:= -cX*Un+StartLon+wX*Un;   //координаты в м
                   pY:= -cY*Un+StartLat+wY*Un;
                   dX:= -(wX+cX);
                   dY:= -(wY+cY);
                   glTranslate(dX,dY,0);    //двигаем
                   cX:= cX+dX;
                   cY:= cY+dY;
                end;
    Сообщение отредактировано: OpenGL -
    0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
    0 пользователей:


    Рейтинг@Mail.ru
    [ Script execution time: 0,0191 ]   [ 15 queries used ]   [ Generated: 29.03.24, 14:03 GMT ]