Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
TCLR-3Ar.doc
Скачиваний:
14
Добавлен:
12.07.2019
Размер:
664.58 Кб
Скачать

-167-

/* при выводе в позицию 80,25 */

Void writechar(char ch)

{

struct text_info ti;

gettextinfo(&ti); /* получить текущие установки */

_AH = 9; /* прерывание 10H, подфункция 9 */

_AL = ch; /* выводимый символ */

_BH = 0; /* страница */

_BL = ti.attribute /* атрибуты */

_CX = 1; /* фактор повторения */

geninterrupt(0x10); /* вывод символа */

}

getarccoords

Функция Выдает координаты последнего обращения к функции

arc.

Синтаксис #include <graphics.h>

Void far getarccoords(struct arccoordstype

far *arccoords);

Файл, содержащий graphics.h

прототип

Описание getarccoords заполняет структуру arccoords-

type, на которую указывает arccoords, информацией

о последнем вызове arc. Структура arccordstype оп-

ределена в graphics.h следующим образом:

struct arccoordstype{

int x, y;

int xstart, ystart, xend, yend;

};

Элементы этой структуры используются для определе-

ния центра (x,y),начальной (xstart, ystart) и ко-

нечной (xend,yend) позиций дуги.Эти значения могут

быть использованы если необходимо , чтобы линии

пересекались на конце дуги.

Возвращаемое Нет.

значение

Переносимость Функция уникальна для Turbo C++. Она работает

только на компьютерах IBM PC и совместимых с ними,

оснащенных дисплейными адаптерами, поддерживающими

графический режим.

Смотрите также arc, fillellipse, sector.

Пример:

#include <graphics.h>

#include <stdlib.h>

#include <stdio.h>

#include <conio.h>

int main(void)

{

-168-

/* Запрос автоопределения */

int graphdriver = DETECT, gmode, errorcode;

struct srccoordstype arcinfo;

int midx,midy;

int stangle = 45,endangle = 270;

char sstr[80],estr[80];

/* инициализация графики и локальных переменных */

initgraph(&graphdriver,&gmode,"");

/* получение результата инициализации */

errorcode = graphresult();

if(errorcode != grOk) /* если ошибка */

{

printf("Ошибка :%s\n",grapherrormessage(errorcode));

printf("Для останова нажмите любую клавишу\n");

getch();

exit(1); /* завершение с кодом ошибки */

}

midx = getmaxx() / 2;

midy = getmaxy() / 2;

setcolor(getmaxcolor(1));

/* рисует дугу */

arc(midx,midy,stangle,endangle,100);

getarccoords((&arcinfo);

/* преобразование информации в строки */

sprintf(sstr,"*- (%d, %d)",arcinfo.xstart,arcinfo.ystart);

sprintf(sstr,"*- (%d, %d)",arcinfo.xend,arcinfo.yend);

/* вывести информацию на экран */

outtextxy(arcinfo.xstart,arcinfo.ystart,estr);

outtextxy(arcinfo.xend,arcinfo.xend,estr);

/* очистка */

getch();

closegraph();

return 0;

}

getaspectratio

Функция Возвращает текущее характеристическое отношение

(отношение ширины изображения к его высоте) графи-

ческого режима.

Синтаксис #include <graphics.h>

void far getaspectratio( int far *xasp,

int far *yasp);

Файл, содержащий graphics.h

прототип

Описание Фактор y-аспекта, *yasp, нормализуется к

10 000; на всех графических адаптерах, кроме VGA,

*xasp ( фактор y-аспекта) меньше *yasp, т.к. пик-

сел больше в высоту,чем в ширину.На VGA,который

имеет "квадратный" пиксел, *xasp равно *yasp. В

целом, соотношение между *yasp и *xasp следующее:

*yasp = 10000

-169-

*xasp <= 10000

getaspectratio передает значения в *xasp и *yasp.

Возвращаемое Нет.

значение

Переносимость Такая же функция существует в Turbo Pascal 4.0

Смотрите также arc, circle, ellipse, fillellipse, pie-

slices, sector, setaspectratio.

Пример:

#include <graphics.h>

#include <stdlib.h>

#include <stdio.h>

#include <conio.h>

int main(void)

{

/* Запрос автоопределения */

int graphdriver = DETECT, gmode, errorcode;

int xasp,yasp,midx,midy;

/* инициализация графики и локальных переменных */

initgraph(&graphdriver,&gmode,"");

/* получение результата инициализации */

errorcode = graphresult();

if(errorcode != grOk) /* если ошибка */

{

printf("Ошибка :%s\n",grapherrormessage(errorcode));

printf("Для останова нажмите любую клавишу\n");

getch();

exit(1); /* завершение с кодом ошибки */

}

midx = getmaxx() / 2;

midy = getmaxy() / 2;

setcolor(getmaxcolor(1));

/* получить текущее характеристическое отношение */

getaspectratio(&xasp,&yasp);

/* нарисовать нормальную окружность */

circle(midx,midy,100);

getch();

/* нарисовать окружность, вытянутую в ширину */

cleardevice();

setaspectratio(xasp/2,yasp);

circle(midx,midy,100);

getch();

/* нарисовать окружность, вытянутую в длину */

cleardevice();

setaspectratio(xasp,yasp/2);

circle(midx,midy,100);

getch();

/* очистка */

-170-

getch();

closegraph();

return 0;

}

getbkcolor

Функция Возвращает текущий цвет фона.

Синтаксис #include <graphics.h>

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]