This shows you the differences between two versions of the page.
c:graphics.h:getaspectration [2015/05/06 23:06] |
c:graphics.h:getaspectration [2024/02/16 01:05] (current) |
||
---|---|---|---|
Line 1: | Line 1: | ||
+ | ===== getaspectration ===== | ||
+ | |||
+ | |||
+ | ====Syntax of getaspectration ==== | ||
+ | <code c> | ||
+ | #include <graphics.h> | ||
+ | void getaspectratio(int *xasp, int *yasp); | ||
+ | </code> | ||
+ | |||
+ | |||
+ | ==== Description of getaspectration ==== | ||
+ | <code c> | ||
+ | The y aspect factor, *yasp, is normalized to 10,000. On all graphics | ||
+ | adapters except the VGA, *xasp (the x aspect factor) is less than *yasp | ||
+ | because the pixels are taller than they are wide. On the VGA, which has | ||
+ | "square" pixels, *xasp equals *yasp. In general, the relationship between | ||
+ | *yasp and *xasp can be stated as | ||
+ | *yasp = 10,000 | ||
+ | *xasp <= 10,000 | ||
+ | getaspectratio gets the values in *xasp and *yasp. | ||
+ | </code> | ||
+ | |||
+ | |||
+ | ==== Example of getaspectration ==== | ||
+ | <code c> | ||
+ | /* getaspectratio example */ | ||
+ | |||
+ | #include <graphics.h> | ||
+ | #include <stdlib.h> | ||
+ | #include <stdio.h> | ||
+ | #include <conio.h> | ||
+ | |||
+ | main() | ||
+ | { | ||
+ | /* request autodetection */ | ||
+ | int gdriver = DETECT, gmode, errorcode; | ||
+ | int xasp, yasp, midx, midy; | ||
+ | |||
+ | |||
+ | /* initialize graphics and local variables */ | ||
+ | initgraph(&gdriver, &gmode, ""); | ||
+ | |||
+ | /* read result of initialization */ | ||
+ | errorcode = graphresult(); | ||
+ | if (errorcode != grOk) { /* an error occurred */ | ||
+ | printf("Graphics error: %s\n", grapherrormsg(errorcode)); | ||
+ | |||
+ | printf("Press any key to halt:"); | ||
+ | getch(); | ||
+ | exit(1); /* terminate with an error code */ | ||
+ | } | ||
+ | |||
+ | midx = getmaxx() / 2; | ||
+ | midy = getmaxy() / 2; | ||
+ | setcolor(getmaxcolor()); | ||
+ | |||
+ | /* get current aspect ratio settings */ | ||
+ | getaspectratio(&xasp, &yasp); | ||
+ | |||
+ | /* draw normal circle */ | ||
+ | circle(midx, midy, 100); | ||
+ | getch(); | ||
+ | |||
+ | /* draw wide circle */ | ||
+ | cleardevice(); | ||
+ | setaspectratio(xasp/2, yasp); | ||
+ | circle(midx, midy, 100); | ||
+ | getch(); | ||
+ | |||
+ | |||
+ | /* draw narrow circle */ | ||
+ | cleardevice(); | ||
+ | setaspectratio(xasp, yasp/2); | ||
+ | circle(midx, midy, 100); | ||
+ | |||
+ | /* clean up */ | ||
+ | getch(); | ||
+ | closegraph(); | ||
+ | return 0; | ||
+ | } | ||
+ | </code> | ||
+ | |||
+ | |||
+ | ==== See also ==== | ||
+ | [[None.]] | ||
+ | |||
+ | |||
+ | ===== output of getaspectration example ===== | ||
+ | |||
+ | no output of example at the moment | ||
+ | do not hesitate and add it... | ||
+ | |||
+ | |||