Differences

This shows you the differences between two versions of the page.

Link to this comparison view

mgl:functionreferencecoordinateframes [2009/06/10 18:21]
mgl:functionreferencecoordinateframes [2022/08/30 13:40] (current)
Line 1: Line 1:
 +====== Functions to adjust the coordinate frame ======
 +
 +===== mglVisualAngleCoordinates:​ Visual angle coordinates =====
 +
 +**purpose:​** Sets view transformation to correspond to visual angles (in degrees) given size and distance of display. Display must be open and have valid width and height (defined in MGL variable)\\ **usage:** mglVisualAngleCoordinates(physicalDistance,​physicalSize);​
 +
 +^ argument ^ value ^
 +| physicalDistance | [distance] in cm |
 +| physicalSize | [width height] in cm |
 +
 +  mglOpen
 +  mglVisualAngleCoordinates(57,​[16 12]);
 +
 +===== mglScreenCoordinates:​ Pixel coordinate frame =====
 +
 +**purpose:​** Set coordinate frame so that it is in pixels with 0,0 in the top left hand corrner\\ **usage:** mglScreenCoordinates()
 +
 +===== mglTransform:​ Low-level function to adjust transforms =====
 +
 +purpose: applies view transformations\\ ​ usage: mglTransform(whichMatrix,​ whichTransform,​ [whichParameters])
 +
 +^ argument ^ value ^
 +| whichMatrix | '​GL_MODELVIEW',​ '​GL_PROJECTION',​ or '​GL_TEXTURE'​ |
 +| whichTransform | '​glRotate',​ '​glTranslate',​ '​glScale','​glMultMatrix',​ '​glFrustum',​ '​glOrtho','​glLoadMatrix',​ '​glLoadIdentity',​ '​glPushMatrix','​glPopMatrix',​ '​glDepthRange',​ or '​glViewport'​ |
 +| whichParameters | function-specific;​ see OpenGL documentation |
 +
 +You can also specifiy one of GL_MODELVIEW,​ GL_PROJECTION,​ or GL_TEXTURE and a return variable current matrix values. If two outputs are specified, the result of the computation will be returned.
 +
 +This function is usually not called directly, but called by mglVisualAngleCoordinates or mglScreenCoordinates to set the transforms
 +
 +===== mglHFlip: Horizontally flip coordinates =====
 +
 +**purpose:​** flips coordinate frame horizontally,​ useful for when the display is viewed through a mirror\\ **usage:** mglHFlip()
 +
 +  mglOpen
 +  mglVisualAngleCoordinates(57,​[16 12]);
 +  mglHFlip
 +  mglTextSet('​Helvetica',​32,​1,​0,​0,​0,​0,​0,​0,​0);​
 +  mglTextDraw('​Mirror reversed',​[0 0]);
 +  mglFlush;
 +
 +===== mglVFlip: Vertically flip coordinates =====
 +
 +**purpose:​** flips coordinate frame vertically\\ **usage:** mglVFlip
 +
 +  mglOpen
 +  mglVisualAngleCoordinates(57,​[16 12]);
 +  mglVFlip
 +  mglTextSet('​Helvetica',​32,​[1 1 1],​0,​0,​0,​0,​0,​0,​0);​
 +  mglTextDraw('​Vertically flipped',​[0 0]);
 +  mglFlush;
 +