Setlines
setlinestyle
Функция Устанавливает толщину и тип линии.
Синтаксис #include
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, а теку- щий тип линии останется без изменений.
Переносимость Функция уникальна для Turbo C++. Она работает только на компьютерах IBM PC и совместимых с ни- ми, оснащенных дисплейными адаптерами, поддержи- вающими графический режим.
Смотрите также
Пример:
#include
#include
#include
#include
/* имена поддерживаемых типов линий */ 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",grapherrormsg(errorcode)); printf("Для останова нажмите любую клавишу\n"); getch(); exit(1); /* завершение с кодом ошибки */ } midx = getmaxx()/2; midy = getmaxy()/2; /* пользовательский шаблон: 1 (двоичный:0000000000000001) */ userpat = 1; for(style = SOLID_STYLE; style