CodeNet / Языки программирования / C / C++ / Руководства и справочные материалы по C/C++ / Справочники по функциям / Справочник по функциям C/C++
setlinestyle
setlinestyle
Функция Устанавливает толщину и тип линии. Синтаксис #include <graphics.h> void far setlinestyle(int linestyle, unsigned upattern, int thickness); Файл, содержащий graphics.h прототип Описание Устанавливает тип для всех линий, рисуемых функциями line, lineto, rectangle, drawpoly и т.д. Структура linesettingstype определена в graphics.h следующим образом: struct linesettingstype{ int linestyle; unsigned upattern; int thickness; }; linestyle определяет тип линий, который будет использоваться (непрерывная, пунктир, штрихпунктир, штриховая). Перечисленные line_styles, определенные в graphics.h, дают названия этим операциям: ------------------------------------------- Название Знач. Описание ------------------------------------------- SOLID_LINE 0 сплошная DOTTED_LINE 1 пунктир CENTER_LINE 2 штрихпунктир DASHED_LINE 3 штриховая USERBIT_LINE 4 тип линии, заданный пользователем ------------------------------------------- thickness определяет будут ли последующие линии тонкими или толстыми. ------------------------------------------- Название Знач. Описание ------------------------------------------- NORM_WIDTH 1 толшина в 1 пиксел THICK_WIDTH 3 толщина в 3 пиксела ------------------------------------------- upattern - это 16-битный шаблон, который используется только когда linestyle равен USERBIT_LINE (4). В этом случае, каждый бит в шаблоне установленный в 1, соответствует пикселю на линии в текущем цвете. Например, сплошной линии соответстсвует upattern равный 0xFFFF (рисуются все пикселы), а пунктиру соответствует upattern равный 0x3333 или 0x0F0F. Если же параметр linestyle в setlynestyle не равен USERBIT_LINE (!=4), то upattern поддерживается, но игнорируется. Замечание. Параметр linestyle не работает при построении дуг, кругов, эллипсов и секторов. В этом случае используется пареметр thickness. Возвращаемое Если в setlinestyle передается неправиль- значение ный ввод, graphresult возвратит -11, а текущий тип линии останется без изменений. Переносимость Функция уникальна для Borland C++. Она работает только на компьютерах IBM PC и совместимых с ними, оснащенных дисплейными адаптерами, поддерживающими графический режим. Функция не совместима с Windows. Смотрите также arc, bar3d, circle, drawpoly, ellipse, getlinesettings, graphresult, line, linerel lineto, pieslice, rectangle. Пример: #include <graphics.h> #include <stdlib.h> #include <stdio.h> #include <conio.h> /* имена поддерживаемых типов линий */ char lname[] = {"SOLID_LINE", "DOTTED_LINE", "CENTER_LINE", "DASHED_LINE", "USERBIT_LINE" }; int main(void) { /* Запрос автоопределения */ int graphdriver = DETECT, gmode, errorcode; int midx,midy,style,userpat; char stylestr[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; /* пользовательский шаблон: 1 (двоичный:0000000000000001) */ userpat = 1; for(style = SOLID_STYLE; style <= USERBIT_STYLE; style++) { /* установить тип линии */ setlinestyle(style,userpat,1) /* пребразовать в строку */ strcpy(stylestr,lname[style]); /* нарисовать линию */ line(0,0,midx-10,midy); /* нарисовать прямоугольник */ rectangle(0,0,getmaxx(),getmaxy()); /* вывести сообщение */ outtextxy(midx,midy,stylestr); /* ожидать нажатия клавиши */ getch(); cleardevice(); } /* очистка */ closegraph(); return 0; }