【问题标题】:Draw an annulus segment in GNUPlot在 GNUPlot 中绘制环形段
【发布时间】:2014-08-18 21:48:13
【问题描述】:

我想使用 GNUPlot 对极坐标图中的特定区域进行着色。该区域以 R (r1, r2) 和 Theta (t1, t2) 为界,因此最终形状是由极空间中的 4 个点定义的环形段。

在笛卡尔图中,通过(set object rect)filledcurve 绘制一个具有4 个顶点的封闭形状的矩形非常容易。但是,极坐标图中由 4 个点指定的填充曲线形状仍然会产生四边形(具有恒定 R 的线应该是圆弧,而不是直线)。

有没有一种简单或直接的方法可以在极坐标中绘制这个形状?我尝试过使用两条弧线,然后填充它们之间的空间,但到目前为止这还不能正常工作,我不确定是否有更好的方法来解决这个问题。

【问题讨论】:

    标签: gnuplot visualization graphing javaplot


    【解决方案1】:

    不幸的是,这并不容易。您可以设置一个circle 对象,您可以为其指定开始角度和结束角度。要切掉中心部分,您必须在上方绘制第二个白色圆圈:

    set xrange [-1:1]
    set yrange [-1:1]
    set size ratio -1
    
    r1 = 0.5
    r2 = 1
    theta1 = -30
    theta2 = 60
    
    set angles degrees
    set style fill solid noborder
    set object circle at first 0,0 front size r2 arc [theta1:theta2] fillcolor lt 1
    set object circle at first 0,0 front size r1 fillcolor rgb 'white'
    
    plot -10 notitle
    

    这里很重要,x 和 y 轴具有相同的单位 (set size ratio -1),因为圆形对象是以第一个 x 轴为单位定义的,根本不考虑 y 轴。如果您没有其他要绘制的内容,则必须使用plot 命令绘制超出定义范围的内容。没有绘图就不会绘制对象。

    4.6.5的结果是:

    在即将发布的 5.0 版本中,您可以将伪数据(具有特殊文件名 +)与 filledcurves 绘图样式一起使用:

    r1 = 0.5
    r2 = 1.0
    theta1 = 20
    theta2 = 135
    set polar
    set angles degrees
    set size ratio -1
    unset raxis
    unset rtics
    set trange [theta1:theta2]
    set style fill solid noborder
    plot '+' using 1:(r1):(r2) with filledcurves notitle
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2010-09-24
      • 1970-01-01
      • 2018-05-08
      • 2013-03-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多