Непонятки с выводом
Есть прямоугольник со сторонами LEN (длина) и HEI (высота). Надо установить камеру так, чтобы этот прямоугольник весь помещался в окно.
m_dAspectRatio - второй параметр в gluPerspective
Код:
m_dAspectRatio = длина_окна / высота_окна;
if (m_dAspectRatio >=1)
{
zoom1 = LEN * .55;
zoom2 = HEI * .55;
m_dZoom = (zoom1 > zoom2) ? zoom1 : zoom2;
}
else
{
zoom1 = LEN / m_dAspectRatio * .55;
zoom2 = HEI / m_dAspectRatio * .55;
m_dZoom = (zoom1 > zoom2) ? zoom1 : zoom2;
}
m_dTransX = LEN / 2;
m_dTransY = HEI / 2;
gluLookAt(m_dTransX, m_dTransY, m_dZoom, m_dTransX, m_dTransY, 0, 0, 1, 0);
if (m_dAspectRatio >=1)
{
zoom1 = LEN * .55;
zoom2 = HEI * .55;
m_dZoom = (zoom1 > zoom2) ? zoom1 : zoom2;
}
else
{
zoom1 = LEN / m_dAspectRatio * .55;
zoom2 = HEI / m_dAspectRatio * .55;
m_dZoom = (zoom1 > zoom2) ? zoom1 : zoom2;
}
m_dTransX = LEN / 2;
m_dTransY = HEI / 2;
gluLookAt(m_dTransX, m_dTransY, m_dZoom, m_dTransX, m_dTransY, 0, 0, 1, 0);
И все бы ничего, но при некоторых параметрах прога вобще ничего не рисует! Причем только при m_dAspectRatio >= 1
Например:
размеры прямоугольника
4110 * 3000 - рисует
4111 * 3000 - не рисует
4112 * 3000 - не рисует
4113 * 3000 - рисует
Плеазе, Хелп