Справочник по функциям С++. Подпрограммы классификации Подпрограммы преобразования
Скачать 3.41 Mb.
|
acos----------------------------------------------------------------- Назначение Вычисление арккосинуса. Синтаксис #include double acos(double x); Прототип в math.h Замечания Функция возвращает арккосинус входного параметра. Аргумент функции должен иметь значе- ние в диапазоне от -1 до 1. Если аргумент выхо- дит за указанные границы, функция acos возвра- щает значение 0 и устанавливает значение переменной errno, в EDOM аргумент не входит в область определения функции. Возвращаемое acos возврашает значение в диапазоне от 0 до значение pi. Обработчик ошибок для этой функции может быть модифицирован с помощью функции matherr. Переносимость Функция доступна в системах типа UNIX и совмес- тима с ANSI Си. Смотри также asin, atan, atan2, cos, cosh, matherr, sin, sinh, tan, tanh ---------------------------------------------------------------- allocmem---------------------------------------------------------------- Назначение Выделяет сегмент памяти DOS. Синтаксис int allocmem(unsigned size, unsigned *segp); Прототип в dos.h Замечания allocmem, используя системный вызов MS-DOS 0x48, выделяет блок свободной памяти и возвра- щает адрес сегмента этого блока. size - требуемый размер в параграфах (размер параграфа равен 16 байтам). segp - указатель на слово, в которое занесется адрес сегмента выде- ляемого блока. По адресу segp не будет присвое- но кокое-либо значение в случае недостатка сво- бодной памяти. Все выделяемые блоки выравнены по параграфам. Возвращаемое При успешном завершении allocmem возвращает -1. значение В случае ошибки возвращается число (размер максимально доступного блока памяти). При этом значения переменной _doserrno и глобальной переменной errno устанавливаются в ENOMEM Недостаточно памяти. Переносимость Уникальна для МS-DOS. Смотри также coreleft, freemem, malloc, setblock ----------------------------------------------------------------- arc----------------------------------------------------------------- Назначение Рисует круговую дугу. Синтаксис #include void far arc (int x, int y, int stangle, int endangle, int radius); Прототип в graphics.h Замечания arc чертит круговую дугу текущего цвета рисова- ния с центром в (x,y) и радиусом, заданным в radius. arc чертит от stangle до endangle. Если stangle=0, а endangle =360, то вызов arc приво- дит к вычерчиванию полной окружности. Угол для arc формируются против часовой стрел- ки. При этом 0 градусов соответствует 3 часам, 90 градусов соответствуют 12 часам и т.д. Замечание: при вычерчивании дуги, окружности, эллипса и сектора для определения типа линии используется параметр thickness а не linestyle. Замечание: при использовании графического адап- тера CGA или монохромного адаптера приведенные в данном материале примеры могут не привести к ожидаемому результату. Это объясняется тем, что вам необходимо передать значение 1 графическим функциям (например, setcolor, setfillstyle, setlinestyle), которые изменяют цвет наполнения (закрашивания) и рисования, вместо соответству- ющей символьной константы цвета (определена в grafics.h). Второй пример в данном разделе ил- люстрирует построение графиков в случае исполь- зования адаптеров CGA или монохромного адапте- ра. Возвращаемое Нет. значение Переносимость Данная функция работает только на IBM PC и совместимых моделях при наличии соответствующих графических адаптеров. Смотри также circle, ellipse, fillellipse, getarccoords, sector Пример 1 Синтаксис графических функций для адаптеров EGA и VGA. #inсlude #inсlude main () { int graphdriver = DETECT, graphmode; /* требование автоопределения */ struct arccoordstype arcinfo; int xasp, yasp; long xlong; initgraph(&graphdriver, &graphmode, " "); /* инициали- зация графики */ /* Начертить дугу в 90 градусов с радиусом 50 */ arc(150, 150,0,89,50); /* Получить координаты дуги и соединить концы */ getarccoords (&arcinfo); line(arcinfo.xstart, arcinfo.ystart, arcinfo.xend, arcinfo.yend); /* Нарисовать окружность */ circle(150,150,100); /* Нарисовать эллипс внутри окружности */ ellips(150,150,0,359,100,50); /* Нарисовать и заполнить круговой сектор */ setcolor(WHITE); /* белый рисунок */ setfillstyle(SOLID_FILL, LIGHTRED); pieslice(100,100,0,134,49); setfillstyle(SOLID_FILL, LIGHTBLUE); pieslice(100,100,135,225,49); setfillstyle(SOLID_FILL, WHITE); pieslice(100,100,225,360,49); /* Начертить "квадратный" прямоугольник */ getaspectratio(&xasp, &yasp); xlong = (100L*(long)yasp)/(long)xasp; rectangle(0,0, (int)xlong, 100); getch(); closegraph(); } Пример 2 Синтаксис графических функций для адаптеров CGA и монохромного адаптера. #inсlude #inсlude main () { int graphdriver = DETECT, graphmode; /* требование автоопределения */ struct arccoordstype arcinfo; int xasp, yasp; long xlong; initgraph(&graphdriver, &graphmode, " "); /* инициали- зация графики */ /* Начертить углы в 90 градусов с радиусом 50 */ arc(150, 150,0,89,50); /* Получить координаты дуги и соединить концы */ getarccoords (&arcinfo); line(arcinfo.xstart, arcinfo.ystart, arcinfo.xend, arcinfo.yend); /* Нарисовать окружность */ circle(150,150,100); /* Нарисовать эллипс внутри окружности */ ellips(150,150,0,359.100,50); /* Нарисовать и заполнить круговой сектор */ setfillstyle(HATCH_FILL, 1); pieslice(100,100,0,134,49); setfillstyle(SLASH_FILL, 1); pieslice(100,100,135,225,49); setfillstyle(WIDE_DOT, 1); pieslice(100,100,225,360,49); /* Начертить "квадратный" прямоугольник */ getaspectratio(&xasp, &yasp); xlong = (100L*(long)yasp)/(long)xasp; rectangle(0,0, (int)xlong, 100); getch(); closegraph(); } ----------------------------------------------------------------- |