在极坐标/参数模式下,在Gnuplot中设置原点

时间:2016-05-08 20:24:21

标签: gnuplot

我想在gnuplot中绘制一个带偏移的圆圈。我可以通过在方程式中添加偏移来实现,如下所示。但是,我想做一些更复杂的渲染,例如渲染多个圆圈,每个圆圈在偏移原点周围具有不同的角度偏移。如果我通过改变每个圆形图的起源来做这个,那么脚本会更加全面。

我正在测试一个圆圈:

set size square
set parametric
set xrange [-2:2]
set yrange [-2:2]
set trange [0:2*pi]
set multiplot

# circle centered at 0,0
fx(t) = sin(t)
fy(t) = cos(t)
plot fx(t), fy(t)

# circle centered at -1,-1
fx(t) = -1 + sin(t)
fy(t) = -1 + cos(t)
plot fx(t), fy(t)

# can't center this circle properly at 1,1
set origin 0.113, 0.23
fx(t) = sin(t)
fy(t) = cos(t)
plot fx(t), fy(t)

要实现(1,1)的偏移,我必须使用(0.113,0.233)的原点。那么,给出这些坐标的等式是什么?我尝试过各种sin / cos组合,因为这可能与极坐标有关,但并不缺乏。使用极性模式而不是参数模式时会出现同样的情况。

1 个答案:

答案 0 :(得分:1)

查看有关origin的在线帮助,这是一个显示选项,而不是绘图选项。

没有理由不这样做。您可以从以下代码中获取灵感:

CENTER_X="1.5 3.2 -2.4"
CENTER_Y="-2.3 1.2 -0.4"
ANGLE="0 45 180"
RADIUS="1 1.2 0.8"
set parametric
set angle degrees
set trange [0:315]
set xrange [-6:6]
set yrange [-6:6]
set size ratio -1
set multiplot
unset key
do for [i=1:words(CENTER_X)] {
 plot word(CENTER_X,i)+word(RADIUS,i)*cos(word(ANGLE,i)+t),word(CENTER_Y,i)+word(RADIUS,i)*sin(word(ANGLE,i)+t)
}
unset multiplot