Опубликован: 07.02.2007 | Доступ: свободный | Студентов: 4014 / 1341 | Оценка: 4.56 / 3.95 | Длительность: 23:09:00
Специальности: Художник
Лекция 5:

Псевдорисунки

< Лекция 4 || Лекция 5: 1234 || Лекция 6 >

Кривые

При пользовании окружением {picture} вы имеете возможность нанести на псевдорисунок кривую более или менее произвольной формы (эти кривые — так называемые квадратичные сплайны Безье). Это делается с помощью команды \qbezier. Вот пример ее работы:

\begin{picture}(80,80)
\qbezier(22,2)(120,20)(20,77)
\put(22,2){\circle*{5}}
\put(120,20){\circle*{5}}
\put(20,77){\circle*{5}}
\end{picture}
\begin{picture}(80,80)
\qbezier(22,2)(120,20)(20,77)
\put(22,2){\circle*{5}}
\put(120,20){\circle*{5}}
\put(20,77){\circle*{5}}
\end{picture}

После \qbezier надо указать (без пробелов) координаты трех точек: начальной, "опорной" и конечной. Из начальной точки кривая выходит, устремляется к опорной, но, как правило, до нее не доходит, поскольку сворачивает к конечной точке, в которой и заканчивает свой путь. В нашем примере мы для ориентировки нанесли на псевдорисунок черные кружки в этих трех точках.

Никакой мистики в том, что TeX рисует кривые, нет: эти кривые просто составляются из сотен черных квадратиков. Можно попросить LaTeX не так густо ставить квадратики, из которых состоит кривая. Для этих целей у команды \qbezier предусмотрен необязательный аргумент — количество этих квадратиков. Он ставится перед всеми обязательными в квадратных скобках:

\begin{picture}(80,80)
\qbezier(22,2)(120,20)(20,77)
\qbezier[60](58,2)(-40,20)(60,77)
\end{picture}
\begin{picture}(80,80)
\qbezier(22,2)(120,20)(20,77)
\qbezier[60](58,2)(-40,20)(60,77)
\end{picture}

Кстати, обратите внимание, что опорная точка второй из наших кривых находится где-то за пределами текста. Это не страшно, поскольку ее координаты используются LaTeX'ом только для расчетов.

Какой бы необязательный аргумент команды \qbezier мы ни задавали, количество квадратиков, из которых составляется кривая, не превысит числа 500. Если вы решили увеличить этот максимум, допустим, до тысячи, надо написать так:

\renewcommand{\qbeziermax}{1000}

Если так вы напишете в преамбуле, то предел 1000 будет относиться ко всем кривым в вашем тексте, а если внутри группы (например, внутри окружения), то изменение этого параметра забудется по выходе из группы. В "лекции 7" будет объяснено, что означает \renewcommand в общем случае.

< Лекция 4 || Лекция 5: 1234 || Лекция 6 >
Нина Казачек
Нина Казачек
Василий Майоров
Василий Майоров