如何在Graphviz中表示计算?

时间:2013-12-03 22:11:48

标签: 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的新节点来表示已经完成的操作。

有人知道如何呈现这种解释吗?或者,这种情况可能不适合用图表表示吗?

由于

1 个答案:

答案 0 :(得分:0)

传统上,在(控制)工程意义上,你要求的是block diagram。方框图是捕获依赖于先前状态的关系的便捷方式(通常是离散或连续意义上的求和或积分)。这种方法的范围非常广泛,我确信它包含了你想要的东西。

尽管graphviz可以做到这一点,但您正在寻找比使用graphviz工具时更高程度的布局控制。有一些像simulink这样的工程工具可以解决这个问题,但是如果你已经有了代码,它们往往会过多。也许更好的选择是生成LaTeX / TiKZ代码,并从那里生成PDF。这可确保您获得(学术)出版物质量图表。有这么好的包already

block diagram