我看过一个关于我们如何使用Tk Canvas中的Gnuplot绘制图形的主题。以下是Donal Fellows @ Donal Fellows的简单代码示例。有人可以用Bold帮助我解决这两个命令(设置术语tk; gnuplot .c)吗?我无法理解它是什么意思。谢谢。
package require Tk
eval [exec gnuplot << "
**set term tk**
plot x*x
"]
pack [canvas .c]
**gnuplot .c**
答案 0 :(得分:2)
当您运行 gnuplot 程序并将终端设置为tk
时,它会在其标准输出中写入一个将创建过程的Tcl脚本。该过程称为gnuplot
,它采用单个参数,即绘制到的画布的名称。所以我们用适当的参数调用 gnuplot 程序,让它告诉你如何制作一个实际上会进行绘图的命令。我们eval
结果,制作画布,并委托新创建的gnuplot
命令在画布上实际绘图。
这有点奇怪,理论上不安全(如果 gnuplot 被黑了怎么办?!?!?!哦,不!)但实际上在实践中效果很好。
要了解其工作原理,请尝试:
puts [exec gnuplot << "
set term tk
plot x*x
"]
而不是评估代码,它将打印出来。您将看到它是一个过程定义,以及它是如何工作的。 (唉,我现在还没有在这台电脑上安装gnuplot,所以我不能马上为你做检查......)
答案 1 :(得分:0)
我不是 gnuplot 的专家,但据我所知,2命令非常简单。
set term tk
将值字符串 tk 分配给变量 term 。
gnuplot .c
使用参数 .c 启动命令 gnuplot 。
在您的代码中, .c 只是tk canvas 小部件的名称。
更有趣的是第一个 [exec gnuplot&lt;&lt; ...] 执行一个名为 gnuplot 的外部命令来初始化 tk 脚本并定义用于在画布上绘制绘图的 tk 命令 gnuplot 。
外部 gnuplot 命令看起来像生成tck代码来定义所需的所有内容。