|
| БЕСПЛАТНАЯ ежедневная online лотерея! Выигрывай каждый день БЕСПЛАТНО! |
|
|
Porting Matrix and Transformation Functions
IRIS GL and OpenGL handle matrixes and transformations in a similar manner. But there are several differences to keep in mind when porting code from IRIS GL:
· In OpenGL you are always in double-matrix mode; there is no single-matrix mode. · Angles are measured in degrees, instead of tenths of degrees. · Projection matrix calls, like glFrustum and glOrtho, now multiply onto the current matrix, instead of being loaded onto the current matrix. · The OpenGL function glRotate is very different from rotate. You can rotate around any arbitrary axis, instead of being confined to the x, y, and z axes. For example, you can translate:
rotate(200*(i+1), 'z');
to:
glRotate(.1*(200*(i+1), 0.0, 0.0, 1.0);
When translating from rotate to glRotate you switch to degrees from tenths of degrees and replace 'z' with a vector for the z-axis.
· OpenGL has no equivalent to the polarview function. You can replace it easily with a translation and three rotations. For example, you can translate:
polarview(distance, azimuth, incidence, twist);
to:
glTranslatef( 0.0, 0.0, -distance); glRotatef( -twist * 10.0, 0.0, 0.0, 1.0); glRotatef( -incidence * 10.0, 1.0, 0.0, 0.0); glRotatef( -azimuth * 10.0, 0.0, 0.0, 1.0);
The following table lists the OpenGL matrix functions and their IRIS GL equivalents.
IRIS GL Function OpenGL Function Meaning mmode glMatrixMode Set current matrix mode. ѕ glLoadIdentity Replace current matrix with the identity matrix. loadmatrix glLoadMatrixf,glLoadMatrixd Replace current matrix with the specified matrix. multmatrix glMultMatrixf,glMultMatrixd Post-multiply current matrix with the specified matrix (note that multmatrix pre-multiplied). mapw, mapw2 gluUnProject Project world-space coordinates to object space (see also gluProject). ortho glOrtho Multiply current matrix by an orthographic projection matrix. ortho2 gluOrtho2D Define a two-dimensional orthographic projection matrix. perspective gluPerspective Define a perspective projection matrix. picksize gluPickMatrix Define a picking region. popmatrix glPopMatrix Pop current matrix stack, replacing the current matrix with the one below it. pushmatrix glPushMatrix Push current matrix stack down by one, duplicating the current matrix. rotate,rot glRotated,glRotatef Rotate current coordinate system by the given angle about the vector from the origin through the given point. Note that rotate rotated only about the x, y, and z axes. scale glScaled,glScalef Multiply current matrix by a scaling matrix. translate glTranslatef,glTranslated Move coordinate-system origin to the point specified, by multiplying the current matrix by a translation matrix. window glFrustum Given coordinates for clipping planes, multiply the current matrix by a perspective matrix.
OpenGL has three matrix modes, which are set with glMatrixMode. The following table lists the modes available as parameters for glMatrixMode.
IRIS GL Matrix Mode OpenGL Mode Meaning Min Stack Depth MTEXTURE GL_TEXTURE Operate on the texture matrix stack. 2 MVIEWING GL_MODELVIEW Operate on the model view matrix stack. 32 MPROJECTION GL_PROJECTION Operate on the projection matrix stack. 2
| Пригласи друзей и счет твоего мобильника всегда будет положительным! |
| Пригласи друзей и счет твоего мобильника всегда будет положительным! |
Перенесение Матричные и Функции Преобразования
ИРИС GL и OpenGL оперирует матрицы и преобразования в аналогичном способе. Но есть несколько различий, чтобы иметь в виду при перенесении кода из IRIS GL:
В OpenGL Вы - всегда в двойном-матричном способе; нет единственного-матричного способа. Углы измерены в градусах, вместо десятых градусов. Матрица Прогноза называет, подобно glFrustum и glOrtho, теперь умножаться в текущей матрице, вместо загруженное в текущую матрицу. Функция OpenGL glRotate отличается с сдвига. Вы можете вращать вокруг любой произвольной оси, вместо ограниченное на x, y, и z оси. Например, Вы можете перевести:
сдвиг(200*(i+1), 'z');
для:
glRotate(.1*(200*(i+1), 0.0, 0.0, 1.0);
При переводе с сдвига на glRotate Вы переключаете на градусы из десятых градусов и заменяете 'z с вектором для z-axis.
OpenGL НЕ имеет эквивалент функции polarview. Вы можете заменить это легко переводом и три вращения. Например, Вы можете перевести:
polarview(расстояние, азимут, инцидентность, искривление);
для:
glTranslatef( 0.0, 0.0, -Расстояние); glRotatef( -Искривление * 10.0, 0.0, 0.0, 1.0); glRotatef( -Инцидентность * 10.0, 1.0, 0.0, 0.0); glRotatef( -Азимут * 10.0, 0.0, 0.0, 1.0);
Следующий стол включает матричные функции OpenGL и их эквиваленты IRIS GL.
ИРИС GL Функциональной Функции OpenGL, означающий mmode glMatrixMode Установивший текущий матричный способ. U glLoadIdentity ЗАМЕНЯЕТ текущую матрицу матрицей тождества. loadmatrix glLoadMatrixf,glLoadMatrixd Заменяет текущую матрицу определенной матрицей. multmatrix glMultMatrixf,Пост-glMultMatrixd умножает текущую матрицу с определенной матрицей (отметьтесь, что multmatrix pre- умноженный). mapw, Проект mapw2 gluUnProject мировые-космические координаты, чтобы возражать пространству (смотри также gluProject). орто glOrtho Умножает текущую матрицу орфографической матрицей прогноза. ortho2 gluOrtho2D Определяет двумерную орфографическую матрицу прогноза. перспектива gluPerspective Определяет перспективную матрицу прогноза. picksize gluPickMatrix Определяет выбирающий регион. popmatrix glPopMatrix Выталкивает текущей матричной кипе, заменяющей текущую матрицу с один ниже это. pushmatrix текущая матричная кипа Толчка glPushMatrix вниз одним, дублируя текущую матрицу. сдвиг,порча glRotated,текущая система координат Сдвига glRotatef данным углом о векторе из начала через данную точку. Отметьте, что сдвиг вращался только о x, y, и z осях. шкала glScaled,glScalef Умножает текущую матрицу масштабирующей матрицей. переведитесь glTranslatef,glTranslated Перемещение координатное-системное начало по существу, определяло, умножая текущую матрицу матрицей перевода. окно glFrustum Данное координируется для отсечения планов, умножает текущую матрицу перспективной матрицей.
OpenGL ИМЕЕТ три матричных способа, которые установлены glMatrixMode. Следующий стол включает способы доступные как параметры для glMatrixMode.
СПОСОБ ИРИСА GL Matrix Mode OpenGL, означающий, что Кипа Min Depth MTEXTURE GL_TEXTURE Действует в матричной кипе текстуры. 2 MVIEWING GL_MODELVIEW ДЕЙСТВУЮТ в виде модели матричной кипы. 32 MPROJECTION GL_PROJECTION ДЕЙСТВУЮТ в матричной кипе прогноза. 2
| |
|
|
| |