2013-12-03 2 views
0

мне нужно представить в виде графика (предпочтительный использованием Graphviz) вычисление формулы, например:Как представить расчет в Graphviz?

raw_unitary_value = <user_input> 
quantity = <user_input> 
discount = <user_input> 

net_unitary_value = raw_unitary_value * (1 - discount/100) 
total_value  = quantity * net_unitary_value 

Я мог бы осуществить следующим образом:

raw_unity_value -> net_unitary_value 
discount   -> net_unitary_value 
net_unitary_value -> total_value 
quantity   -> total_value 

Или

raw_unity_value  -> net_unitary_value_calc 
discount    -> net_unitary_value_calc 
net_unitary_value_calc [label="%"] 
net_unitary_value_calc -> net_unitary_value 

net_unitary_value -> total_value_calc 
quantity   -> total_value_calc 
total_value_calc  [label="*"] 
total_value_calc -> total_value 

Но в обоих подходах я не чувствую себя комфортно, что это хорошее решение. Это только первая часть формулы, она содержит около 30 переменных.

Трудно представить детали расчета, поэтому во втором подходе я добавил новый узел, называемый * _calc, чтобы представить операцию, которая была сделана.

Есть ли у кого-нибудь представление о том, как сделать такое объяснение? Или, может быть, этот случай не подходит для представления на графике?

Благодаря

ответ

0

Традиционно в (контроль) инженерной смысле, что вы просите за это block diagram. Блок-диаграммы - удобный способ захвата отношений, которые зависят от предшествующего состояния (как правило, суммирование или интеграция в дискретном или непрерывном смысле). Этот метод довольно обширен по охвату, и я уверен, что он охватывает то, что вы хотите.

Хотя graphviz может это сделать, вы ищете более высокую степень управления компоновкой, чем то, что вы обычно получаете с помощью инструментов graphviz. Для решения этой проблемы есть технические инструменты, такие как simulink, но они имеют тенденцию быть чрезмерными, если у вас уже есть код. Возможно, лучшим вариантом является генерация кода LaTeX/TiKZ и создание PDF-файлов оттуда. Это гарантирует, что вы получите (академические) диаграммы качества публикации. Есть отличные пакеты для этого already.

block diagram

Смежные вопросы