DRAKON.SU

Текущее время: Среда, 17 Апрель, 2024 02:54

Часовой пояс: UTC + 3 часа




Начать новую тему Ответить на тему  [ Сообщений: 11 ] 
Автор Сообщение
СообщениеДобавлено: Пятница, 04 Март, 2011 23:17 

Зарегистрирован: Понедельник, 09 Август, 2010 22:28
Сообщения: 128
Выделено модератором: viewtopic.php?p=61121#p61121
* Владимир Паронджанов: "Или я не прав?"

Правы вы или нет покажет жизнь.

* Сейчас я больше заинтересован в создании дракон-схем на базе LaTeX пакета pgf/tikz. Желающие могут установить LaTeX и попробовать пакет на зуб. Пример прилагаю.

Пока на tikz удалось сделать только простую диаграмму. Пока не знаю, как соединять линии после развилки. Но, ничего, дело пошло. Если кто-то еще подключится, будет здорово. Сейчас я пользуюсь редактором leo, который позволят разбивать код на фрагменты, что позволяет видеть структуру исходника. Это особенно удобно для HTML/LaTeX документов. Т.к. там весь документ - структура и отсутствуют процессы, которые удобно описывать на драконе. Если кому-то нужен leo файл tikz схемы - говорите.

Код схемы:

\documentclass{article}

\usepackage[utf8]{inputenc}
\usepackage[russian]{babel}
\usepackage{tikz}
\usetikzlibrary{shapes,arrows}
\begin{document}
\tikzstyle{line} = [draw]
\tikzstyle{block} = [rectangle, draw, text width=5em,
text centered, rounded corners, minimum height=4em]
\tikzstyle{question} = [shape=chamfered rectangle, chamfered rectangle xsep=2cm, draw]

\begin{tikzpicture}[node distance = 2cm, auto]
\node[rounded rectangle, draw] (begin) {begin};
\node [block, below of=begin] (init) {initialize model};
\node[question, below of=init] (switch1) {if(something)};
\node [block, below of=switch1] (return1) {return \$couty};
\node [block, right of=return1, node distance=5cm] (return2) {return \$county1;};
\node[rounded rectangle, draw, below of=return1] (end) {end};


\path [line] (begin) -- (init);
\path [line] (init) -- (switch1);
\path [line] (switch1) -- node [near start] {yes} (return1);
\path [line] (switch1) -| node [near start] {no} (return2);
\path [line] (return1) -- (end);

\end{tikzpicture}

\end{document}


Вложения:
2.PNG
2.PNG [ 10.58 КБ | Просмотров: 12481 ]
Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Суббота, 05 Март, 2011 22:47 

Зарегистрирован: Понедельник, 09 Август, 2010 22:28
Сообщения: 128
Удалось сделать соединение линий. Правда, стрелка маловата.

\documentclass{article}

\usepackage[utf8]{inputenc}
\usepackage[russian]{babel}
\usepackage{tikz}
\usetikzlibrary{shapes,arrows}
\begin{document}
\tikzstyle{line} = [draw]
\tikzstyle{block} = [rectangle, draw, text width=5em,
text centered, rounded corners, minimum height=4em]
\tikzstyle{question} = [shape=chamfered rectangle, chamfered rectangle xsep=2cm, draw]

\begin{tikzpicture}[node distance = 2cm, auto]
\node[rounded rectangle, draw] (begin) {begin};
\node [block, below of=begin] (init) {initialize model};
\node[question, below of=init] (switch1) {if(something)};
\node [block, below of=switch1] (return1) {return \$county};
\node [block, right of=return1, node distance=5cm] (return2) {return \$county1;};
\node[coordinate, below of=return1, node distance=1.5cm] (junction) {};
\node[rounded rectangle, draw, below of=junction, node distance=1.5cm] (end) {end};


\path [line] (begin) -- (init);
\path [line] (init) -- (switch1);
\path [line] (switch1) -- node [near start] {yes} (return1);
\path [line] (switch1) -| node [near start] {no} (return2);
\draw [->,>=angle 45] (return2) |- (junction);
\path [line,name=y] (return1) -- (end);
\end{tikzpicture}

\end{document}


Вложения:
2.PNG
2.PNG [ 11.03 КБ | Просмотров: 12429 ]
Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Воскресенье, 06 Март, 2011 11:21 

Зарегистрирован: Воскресенье, 24 Февраль, 2008 15:32
Сообщения: 5848
Откуда: Москва
usr345 писал(а):
Удалось сделать соединение линий. Правда, стрелка маловата.

Мелкие замечания.

1. Согласно правилам дракона здесь стрелка вообще не нужна.
(Стрелка -- признак цикла).

2. Слово "no" следует сдвинуть влево


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Воскресенье, 06 Март, 2011 17:47 

Зарегистрирован: Воскресенье, 01 Ноябрь, 2009 05:13
Сообщения: 1443
usr345 писал(а):
[color=#FF0000]...
* Сейчас я больше заинтересован в создании дракон-схем на базе LaTeX пакета pgf/tikz. Желающие могут установить LaTeX и попробовать пакет на зуб. Пример прилагаю.
...
Не специалист в Латексе, потому вопрос может показаться "детским": схемы создаются путём набора кода по типу показанного? или визуально как-то?


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Понедельник, 07 Март, 2011 09:39 

Зарегистрирован: Понедельник, 09 Август, 2010 22:28
Сообщения: 128
Цитата:
схемы создаются путём набора кода по типу показанного? или визуально как-то?


Путем набора кода.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Суббота, 02 Апрель, 2011 11:53 

Зарегистрирован: Понедельник, 09 Август, 2010 22:28
Сообщения: 128
Продвижение на моем фронте. Cделал схему языка ГРАФ "линейка" на tikz:

Код:
\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage[russian]{babel}
\usepackage{tikz}
\usetikzlibrary{shapes}
\usetikzlibrary{arrows,positioning}
\begin{document}

\begin{figure}
\centering
\begin{tikzpicture}[node distance=1cm, auto] 
\tikzset{
    main_node/.style={ellipse, ,draw=black, top color=white, bottom color=yellow!50,thick, inner sep=1em, minimum size=3em, text centered, double},
    mynode/.style={rectangle,rounded corners,draw=black, top color=white, bottom color=yellow!50,very thick, inner sep=1em, minimum size=3em, text centered},
    myarrow/.style={draw},
}

\node[main_node] (top) {Государственная власть}; 
\node[mynode, below=2cm of top] (center) {Судебная};
\node[mynode, left=of center] (left) {Законодательная};
\node[mynode, right=of center] (right) {Исполнительная};

\draw[myarrow] (top.south) -- (center.north);   
\draw[myarrow] (top.south) -- ++(0,-1) -|  (left.north);   
\draw[myarrow] (top.south) -- ++(0,-1) -|  (right.north);

\end{tikzpicture}
\end{figure}

\end{document}


Изображение


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Четверг, 07 Апрель, 2011 18:28 

Зарегистрирован: Воскресенье, 06 Апрель, 2008 14:43
Сообщения: 1657
Создание дракон-схем на базе LaTeX пакета pgf/tikz
http://dxdy.ru/post426339.html


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Четверг, 07 Апрель, 2011 20:55 

Зарегистрирован: Понедельник, 09 Август, 2010 22:28
Сообщения: 128
Геннадий Тышов писал(а):
Создание дракон-схем на базе LaTeX пакета pgf/tikz
http://dxdy.ru/post426339.html


Геннадий, это я и писал :-)

По-моему схема на языке ГРАФ, которуя я там привел, существенно прояснила проблемы, с которыми я столкнулся.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Пятница, 29 Апрель, 2011 23:20 

Зарегистрирован: Понедельник, 09 Август, 2010 22:28
Сообщения: 128
Удалось сделать схему на языке МОЛНИЯ на tikz

Изображение

Код:
\documentclass{minimal}
\usepackage{tikz}
\usepackage[utf8]{inputenc}
\usepackage[russian]{babel}
\usetikzlibrary{backgrounds,calc,positioning,shapes,shapes.callouts}

\begin{document}
  \begin{tikzpicture}[%
    shorten >=3pt,
    shorten <=3pt,
    node distance=5cm,
    note/.style={draw,fill=white,rectangle callout,minimum width=10em,minimum height=4ex},
    content/.style={draw,fill=white,ellipse,minimum width=10em,minimum height=4ex}
  ]
    \node[content]                                   (a) {''Пойдем спать''};
    \node[content]                                   (b) [right of=a]                     {сказал Вася};
    \node[note,callout relative pointer={(0,-0.75)}] (c) [node distance=1.5cm,above of=a] {Прямая речь\strut};
    \node[note,callout relative pointer={(0,-0.75)}] (d) [right of=c]                     {Слова автора\strut};

    \path (a) edge (b);
    \begin{scope}[on background layer]
      \draw[fill=gray!25] ($(c.north west)+(-20pt,15pt)$) rectangle ($(d.south east)+(20pt,-65pt)$);
      \draw[fill=gray!10] ($(a.south west)+(-20pt,-10pt)$) rectangle ($(b.north east)+(20pt,10pt)$);
    \end{scope}
  \end{tikzpicture}
\end{document}


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Суббота, 30 Апрель, 2011 13:07 
Модератор
Аватара пользователя

Зарегистрирован: Понедельник, 14 Ноябрь, 2005 18:39
Сообщения: 631
Откуда: Россия, Орёл
Почему бы не упаковать всю энту порнорафию :) в \newcommand, где параметрами передавать уже содержание для значков? LaTeX же поддерживает абстракцию, это не HTML какой-нить.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Четверг, 08 Сентябрь, 2011 10:21 

Зарегистрирован: Понедельник, 09 Август, 2010 22:28
Сообщения: 128
Сделал программу для генерации схемы "батарея" типа той, где я показывал атрибуты Moose класса.

Видео, описывающее работу с программой:

http://www.youtube.com/watch?v=zd_7LtATsM4&hd=1

-------------------------------------------------------------------------------------------------
Программа сделана на Perl. Даю инструкцию по установке необходимых программ для Windows:

1. Скачайте и установите интерпретатор Perl:

http://www.activestate.com/activeperl/downloads

2. В командной строке наберите ppm.

3. Установите модули: Any-Moose, HTML-Template, Spreadsheet-ParseExcel

4. Установите LaTeX:

http://miktex.org/

---------------------------
запустите generator.cmd


Вложения:
battery.zip [30.54 КБ]
Скачиваний: 354
Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 11 ] 

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 4


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
cron
Вся информация, размещаемая участниками на конференции (тексты сообщений, вложения и пр.) © 2008-2024, участники конференции «DRAKON.SU», если специально не оговорено иное.
Администрация не несет ответственности за мнения, стиль и достоверность высказываний участников, равно как и за безопасность материалов, предоставляемых участниками во вложениях.
Powered by phpBB® Forum Software © phpBB Group
Русская поддержка phpBB