#include <graphics.h>
#include <stdio.h>
#include <conio.h>
#define R 60
void main ( )
{
int driver, mode;
int xasp, yasp;
driver= DETECT;
mode= 0 ;
initgraph ( & driver, & mode, "" ) ;
fillellipse ( getmaxx ( ) / 2 , getmaxy ( ) / 2 , 66 , 44 ) ;
getaspectratio ( ( float * ) & xasp, ( float * ) & yasp) ;
fillellipse ( R, R, R, R* ( long ) xasp/ ( long ) yasp) ;
getch ( ) ;
closegraph ( ) ;
}
getaspectratio()获取纵横比函数 功能: 函数getaspectratio()返回x方向和y方向的比例系数,用这两个整型值可计算某一特定屏显的纵横比。 用法: 此函数调用方式为void getaspectratio(int xasp,int yasp); 说明: 参数xasp指向的变量存放返回的x方向比例系数;参数yasp指向的变量存放返回的y方向比例系数。通常y方向比例系数为10 000, x方向比例系数不大于10 000(这是因为大多数屏幕像素高比宽长)。 注意纵横比自动用作下面函数arc(),circle()和pieslice()中的标尺因子,使屏幕上圆或弧正常显示。但用ellipse()函数画椭圆必须调用本函数获取纵横比作为标尺因子,否则不予调整。纵横比可用于其它几何图形,目的是校正和显示图形。 getaspectratio()函数对应的头文件为graphics.h 返回值: 返回x与y方向比例系数分别存放在xasp和yasp所指向的变量中。 例: 下面的程序显示纵横比: int xasp,yasp; float aspectratio; getaspectratio(&xasp,&yasp); aspectratio=xasp/yasp; printf(“aspect ratio: %f”,aspectratio);
#include <graphics.h>
#include <stdio.h>
#include <conio.h>
void main ( )
{
int driver, mode;
mode= 0 ;
static int points[ ] = { 100 , 100 , 100 , 200 , 200 , 200 , 100 , 100 } ;
driver= DETECT;
mode= 0 ;
initgraph ( & driver, & mode, "" ) ;
fillpoly ( 4 , points) ;
getch ( ) ;
}