Файл: Лекции Компьютерная графика.pdf

Добавлен: 29.10.2018

Просмотров: 6916

Скачиваний: 22

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.
background image

\

put(x, y){объект }

, размещает объект так, чтобы его точка привязки находилась

в точке с координатами (x, y).

Для размещения многократно повторяющегося объекта существует коман-

да

\

multiput(x, y)(dx, dy){n}{объект }

, — создаёт n копий объекта, размещая

их так, чтобы точка привязки i-й копии находилась в точке с координатами
(x + [i − 1]dx, y + [i − 1]dy)

.

4.2. Линии

Для задания прямых линий используется команда

\

line(l

x

, l

y

)

{длина

x

}

, где па-

ра (l

x

, l

y

)

задают относительные проекции линии на соответствующие координатные

оси, тем самым определяя наклон линии. l

x

и l

y

могут принимать только целые

значения из диапазона [−6; 6] и не могут иметь общего делителя. Длина линии опре-

деляется проекцией на ось X, задаваемом в параметре длина

x

.

Кроме линий существует возможность рисовать векторы (линии со стрелками на

конце). Векторы задаются командой

\

vector(l

x

, l

y

)

{длина

x

}

, её аргументы имеют

такой же смысл как и в команде

\

line

, с единственным отличием: l

x

и l

y

могут

принимать значения из диапазона [−4; 4].

В L

A

TEXе имеется возможность построения кривых второго порядка. Команда

\

qbezier[N](x

A

, y

A

)(x

B

, y

B

)(x

C

, y

C

)

рисует квадратичную кривую Безье. Для за-

дания кривой Безье второго порядка необходимо задать начальную (A) и конечную

точки (C) а также контрольную точку (B), в которой пересекаются касательные,

проведённые к параболе в граничных точках.

Необязательный аргумент N задаёт количество точек, используемых для аппрок-

симации кривой. По умолчании это число определяется параметром

\

qbeziermax

,

его можно изменить с помощью команды

\

renewcommand

.

4.3. Круги

Команда

\

circle{диаметр }

рисует окружность

i

.

Команда

\

circle*{диаметр }

рисует круг

y

.

Точкой привязки этих объектов служит центр окружности. Диаметр может за-

даваться любым положительным числом, однако реальный диаметр окружности бу-

дет выбран L

A

TEX’ом из набора имеющихся шрифтов, наиболее близкий к заданному.

Максимальный диаметр для окружности обычно составляет 40 pt а для круга — в

два раза меньше.
Пример

.66 (линии и круги). Здесь кривая Безье задана командой

\qbezier(5,5)(15,35)(75,55

).

\begin{picture}(100,40)(10,10)
{\color{MyBlue}\qbezier(5,5)(15,35)(75,55)}
\put(5,5){\circle*{3}}
\put(3,7){\makebox(0,0)[br]{A}}
\put(15,35){\circle{3}}

125


background image

\put(13,37){\makebox(0,0)[br]{B}}
\put(75,55){\circle*{3}}
\put(73,57){\makebox(0,0)[br]{C}}
\put(15,35){\line(-1,-3){11}}
\put(15,35){\line(3,1){65}}
\end{picture}

s

A

c

B

s

C

4.4. Овалы

Овал — это прямоугольник с максимально скруглёнными углами

.

Команда

\

oval(ширина,высота )[часть ]

строит овал с заданной шириной и

высотой

. Точка привязки овала находится в его центре.

Необязательный аргумент задаёт часть овала, он может состоять из одного или

двух спецификаторов: l — левый;

r — правый;

t — верхний; b — нижний.

Если задан один спецификатор, то рисуется соответствующая половина овала,

если заданы два совместимых спецификатора, то — соответствующая четверть ова-

ла.

Чтобы нарисовать скругление меньшего радиуса, используются четверти овалов

соответственно меньшего размера.

4.5. Боксы

В графической моде текстовые боксы имеют другой синтаксис и в этих

боксах не добавляются окружающие пробелы вокруг текста. Команды вы-
глядят

следующим

образом:

\

makebox(ширина,высота )[позиц. ]{текст}

;

\

framebox(ширина,высота )[позиц. ]{текст}

.

Позиционирование

может состоять из одного или двух спецификаторов:

l

— текст сдвинут к левому краю бокса;

c

— текст расположен по центру бокса;

r

— текст сдвинут к правому краю бокса;

s

— текст растянут на всю ширину боксу;

t

— текст сдвинут к верхнему краю бокса;

b

— текст сдвинут к нижнему краю бокса.

126


background image

По умолчанию текст центрируется.

Кроме перечисленных боксов, в графической моде добавляются ещё несколько

команд:

\

dashbox{штрих }(ширина,высота )[позиц. ]{текст}

— для боксов, обве-

дённых пунктирным контуром, длина пунктира задаётся параметром штрих, изме-

ряемом в единицах

\

unitlength

.

\

frame{текст}

— упрощённый вариант команды framebox, аналог команды

\

fbox

в текстовой моде.

\

shortstack[позиционирование ]{текст}

— формирует стек. Текст внутри

бокса располагается в одну колонку, строки разделяются командой

\\

. Опция пози-

ционирование позволяет выравнивать текст по горизонтали, допустимые значения:

r, l, c (используется по умолчанию).

Эта команда может использоваться не только в графическом, но и в любом дру-

гом режиме.

Для сохранения бокса также существует «графический вариант»:

\

savebox{имя }(ширина,высота )[позиц. ]{текст}

.

Здесь имя также задаёт имя сохраняемого бокса. Рекомендуется использовать эту

команду для сложных рисунков из повторяющихся графических элементов, т. к. с

этой командой компиляция происходит быстрее, чем с использованием вложенных

команд

\

multiput

.

Пример

.67 (линии и круги).

\begin{picture}(80,100)(0,-50)

\put(10,-20){\line(1,0){8}}
\put(50,-20){\line(-1,0){8}}
\put(10,-40){\line(1,0){28}}
\put(90,-40){\line(-1,0){28}}
\put(20,-20){\circle{4}}
\put(10,3){$I$}
\put(40,-20){\circle{4}}
\put(40,-40){\circle{4}}
\put(45,-44){$U$}
\put(60,-40){\circle{4}}
\put(10,0){\line(1,0){10}}
\put(10,0){\vector(1,0){10}}
\put(40,0){\line(1,0){20}}
\put(24,-24){$U_1$}
\put(80,0){\line(1,0){10}}
\put(80,0){\vector(1,0){10}}
\put(80,-10){$I_2$}
\put(50,0){\circle*{3}}
\put(50,-20){\line(0,1){50}}
\put(90,30){\line(0,-1){70}}
\put(10,0){\line(0,-1){40}}

\put(50,30){\line(1,0){15}}
\put(75,30){\line(1,0){15}}
\put(75,30){\vector(1,0){10}}
\put(80,20){$I_{\text{V}}$}
\thicklines
\put(20,-5){\framebox(20,10){}}
\put(25,8){$R_1$}
\put(60,-5){\framebox(20,10){}}
\put(65,8){$R_2$}
\put(70,30){\circle{10}}
\put(70,30){\makebox(0,0){\small\sf V}}
\put(55,20){$R_{\text{V}}$}
\end{picture}

127


background image

d

I

d

d

U

d

-

U

1

-

I

2

s

-

I

V

R

1

R

2

k

V

R

V

5.

Цвет

Для вывода в цвете TEX’у также нужно указать драйвер устройства. Чтобы за-

действовать цвет надо подключить пакет

color

из коллекции graphics. Представле-

ние цвета зависит не от L

A

TEX’а (пакета color), а от используемого драйвера.

Обычно все драйверы поддерживает 4 цветовые модели:

gray

— задаётся числом от 0 до 1.

rgb

— задаётся тройкой чисел от 0 до 1.

cmyk

— задаётся четвёркой чисел от 0 до 1.

named

— задаётся именем. Драйвер

dvips содержит определения 68 имён цветов.

5.1. Определение цвета

Любой драйвер поддерживает цвета

black ,

white

,

red

,

green

,

blue

.

cyan

,

magenta

и

yellow

,

Для определения произвольного цвета существует команда

\

definecolor{имя }{модель }{описание }

.

Пример

.68 (определение произвольного цвета).

\definecolor{MyBlue}{rgb}{.6,.8,1}

Цвет

RoyalBlue (rgb(65,105,225)) определён только в драйвере dvips.

\definecolor{RBlue}{rgb}{.255,.412,.88}

5.2. Использование цветов

Для задания цвета текста имеется декларация

\

color{цвет }

или

\

color[модель ]{описание }

и команда

\

textcolor{цвет }{текст }

или

\

textcolor[модель ]{описание }{текст }

.

Цвет страницы изменяет декларация

\

pagecolor{цвет }

, где вместо имени цве-

та

также можно задать цвет используя его описание в к.-л. цветовой модели.

Цветные текстовые боксы задаются командами

\

colorbox{цвет фона }{текст }

и

\

fcolorbox{цвет рамки }{цвет фона }{текст }

, которые действуют и регулиру-

ются как команда

\

fbox

.

Цвета фона

и рамки также можно указывать явно, в описаниях цветовой модели.

128


background image

Пример

.69 (определение произвольного цвета).

colorPage.ps

{\pagecolor[named]{Salmon} \color{cyan}Текст

цвета \colorbox[named]{OliveGreen}{\texttt{cyan}}

с вкраплением \textcolor{green}{\tt{зёленого}}

на фоне цвета \fcolorbox{green}{cyan}%

{\color[named]{Salmon}Salmon}. }

Для более сложной работы с цветом можно использовать пакет для цветных

таблиц (

colortbl

) и пакеты для подготовки слайдов (

seminar

, а лучше — класс

beamer

).

129