半圆函数的半圆有间隙
Semicircles from semicircle functions have gaps
我有这个代码
reset
set terminal svg enhanced fname 'Times New Roman' rounded dashed standalone
set size ratio 1.0
set style line 1 linecolor rgb '#0060ad' linetype 1 linewidth 1 # blue
set style line 2 linecolor rgb '#dd181f' linetype 1 linewidth 1 # red
set xrange[-10:10]
set yrange[-10:10]
set xzeroaxis linetype 2 linewidth 1
set yzeroaxis linetype 2 linewidth 1
set grid x,y front
#set tics scale 0.75
set xtics 1
set ytics 1
set label at 1,3 point pt 7 ps 0.4
f(x) = -sqrt(25-(x-1)**2)+3
g(x) = sqrt(25-(x-1)**2)+3
plot f(x) with lines ls 1, \
g(x) with lines ls 2
产生
不确定为什么它没有完成整个半圆,即为什么有间隙?这只是一个解析几何尝试创建一个以 (1,3) 为中心的半径为 5 的圆。欢迎使用其他方法,但我更喜欢直接使用这些函数。
Gnuplot 通过在当前 x 范围内以固定数量的 x 值采样来绘制函数。默认值为 samples=100
。您的 x 范围是 [-10:10],这意味着每个函数沿 x 以 0.1 的间隔进行采样。
实际上比这更糟糕,因为 100 个样本包括端点,所以样本实际上是在 20./99 的倍数处采集的,这意味着没有样本恰好在曲线的 +/-4.00000会见面。您可以通过 set samples 101
解决该问题。然后曲线会相交,但不会产生平滑的圆,因为上弧和下弧将在连接处倾斜而不是垂直。
解决这个问题的更好方法是 围绕圆 而不是沿 x 轴取样本,特别是因为大多数沿 x 轴的样本甚至没有贡献。在 gnuplot 中执行此操作的语法是:
set angle degrees
plot sample [t=0:360] '+' using (1+5*cos(t)):(3+5*sin(t)) with lines
分别绘制上弧和下弧
plot sample [t=0:180] '+' using (1+5*cos(t)):(3+5*sin(t)) with lines, \
[t=180:360] '+' using (1+5*cos(t)):(3+5*sin(t)) with lines
我有这个代码
reset
set terminal svg enhanced fname 'Times New Roman' rounded dashed standalone
set size ratio 1.0
set style line 1 linecolor rgb '#0060ad' linetype 1 linewidth 1 # blue
set style line 2 linecolor rgb '#dd181f' linetype 1 linewidth 1 # red
set xrange[-10:10]
set yrange[-10:10]
set xzeroaxis linetype 2 linewidth 1
set yzeroaxis linetype 2 linewidth 1
set grid x,y front
#set tics scale 0.75
set xtics 1
set ytics 1
set label at 1,3 point pt 7 ps 0.4
f(x) = -sqrt(25-(x-1)**2)+3
g(x) = sqrt(25-(x-1)**2)+3
plot f(x) with lines ls 1, \
g(x) with lines ls 2
产生
不确定为什么它没有完成整个半圆,即为什么有间隙?这只是一个解析几何尝试创建一个以 (1,3) 为中心的半径为 5 的圆。欢迎使用其他方法,但我更喜欢直接使用这些函数。
Gnuplot 通过在当前 x 范围内以固定数量的 x 值采样来绘制函数。默认值为 samples=100
。您的 x 范围是 [-10:10],这意味着每个函数沿 x 以 0.1 的间隔进行采样。
实际上比这更糟糕,因为 100 个样本包括端点,所以样本实际上是在 20./99 的倍数处采集的,这意味着没有样本恰好在曲线的 +/-4.00000会见面。您可以通过 set samples 101
解决该问题。然后曲线会相交,但不会产生平滑的圆,因为上弧和下弧将在连接处倾斜而不是垂直。
解决这个问题的更好方法是 围绕圆 而不是沿 x 轴取样本,特别是因为大多数沿 x 轴的样本甚至没有贡献。在 gnuplot 中执行此操作的语法是:
set angle degrees
plot sample [t=0:360] '+' using (1+5*cos(t)):(3+5*sin(t)) with lines
分别绘制上弧和下弧
plot sample [t=0:180] '+' using (1+5*cos(t)):(3+5*sin(t)) with lines, \
[t=180:360] '+' using (1+5*cos(t)):(3+5*sin(t)) with lines