Russian Belarusian English German Japanese Ukrainian

Rashka.studio - игры и приложения для Android! Заходи, ждём тебя =)

Setlinestyle

CuBook05

Функция

Устанавливает толщину и тип линии.
 
Синтаксис

#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.
 
Пример

#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;
}
Если заметили ошибку, выделите фрагмент текста и нажмите Ctrl+Enter

Добавить комментарий