<?xml version='1.0' encoding="utf-8"?>
      <rss version='2.0'>
      <channel>
      <title>Форум на Исходниках.RU</title>
      <link>https://forum.sources.ru</link>
      <description>Форум на Исходниках.RU</description>
      <generator>Форум на Исходниках.RU</generator>
  	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=410098&amp;view=findpost&amp;p=3698943</guid>
        <pubDate>Thu, 22 Dec 2016 11:42:18 +0000</pubDate>
        <title>gluUnproject выдает GL_FALSE</title>
        <link>https://forum.sources.ru/index.php?showtopic=410098&amp;view=findpost&amp;p=3698943</link>
        <description><![CDATA[mnj: Товарищи, решаю задачу перехода по карте в точку, задаваемую кликом мышки. Пока не масштабирую (чтобы можно было перемещаться в дальние области или более точно) картинку функцией glScalef все нормально, стоит изменить масштаб и кликнуть, gluUnproject выдает GL_FALSE, безумные значения wX, wY, что-нибудь в степени +305 или -287, соответственно, никуда не идем. Может я где чего забыл?<br>
<br>
<div class='tag-code'><span class='pre_code'></span><div class='code  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;glGetIntegerv(GL_VIEWPORT,@Viewport);</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;glGetDoublev(GL_MODELVIEW_MATRIX,@MVmatrix);</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;glGetDoublev(GL_PROJECTION_MATRIX, @Projmatrix);</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; //viewport[3] - высота окна в пикселях, редбук стр. 100-101</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; //у нас задана квадратная область вывода (не окна!), ширина = высота, можно написать ClientWidth</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;realY:= ClientWidth - Y - 561;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; // realY:= Viewport[3] - Y - 561;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;Caption:= &#39;X = &#39;+ IntToStr(X)+ &#39; Y = &#39;+IntToStr(realY);</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;if gluUnProject(X, realY,0.0,@MVmatrix,@Projmatrix,@viewport,wX,wY,wZ) = GL_TRUE then</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;begin</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; pX:= -cX*Un+StartLon+wX*Un; &nbsp; //координаты в м</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; pY:= -cY*Un+StartLat+wY*Un;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; dX:= -(wX+cX);</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; dY:= -(wY+cY);</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; glTranslate(dX,dY,0); &nbsp; &nbsp;//двигаем</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; cX:= cX+dX;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; cY:= cY+dY;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;end;</div></ol></div></div></div></div><script>preloadCodeButtons('1');</script>]]></description>
        <author>mnj</author>
        <category>Программирование графики</category>
      </item>
	
      </channel>
      </rss>
	