首页 > 解决方案 > gnuplot 中的 splot 和箭头坐标之间是否存在不匹配或者我遗漏了什么?

问题描述

我正在尝试绘制以下 3 个相交平面:

x + 2y + 4z = 7

2x + 3y + 3z = 1

3x + 7y + 2z = -11

为了增加重点,我想在每对平面的交叉点上加入一些无头箭头和一个小球体来指示交叉点。但由于某种原因,飞机本身似乎与轴不对齐。从方程中,我可以很容易地找到交点的坐标,找到沿着每对平面的交点延伸的线条边缘的坐标,如果需要,找到线条的参数方程。但是到目前为止,当我将线从绘图的边缘绘制为箭头或将交叉点绘制为圆形时,平面似乎错误地定位在坐标内。我可以看到圆圈或线条的位置正确,但平面本身似乎已经移动。这可能是什么原因造成的?我输入的方程式错误吗?也许 xy 平面的移动会使事物四处移动?我认为这一定是我没有看到的明显的东西。我觉得这很令人费解。

reset

samps = 500

set samples samps,samps
set isosamples samps,samps

f(x,y) = 7/4 - x/4 - y/2
set table $Data01
   splot f(x,y)
unset table

g(x,y) =  1/3 - 2/3*x - y
set table $Data02
   splot g(x,y)
unset table

h(x,y) = -11/2 - 3/2*x - 7/2*y
set table $Data03
   splot h(x,y)
unset table

Zmin = 1.0
Zmax = 3.5

set xrange [-1.2:0.5]
set yrange [-4:0]
set zrange [Zmin:Zmax]
set hidden3d

set xlabel 'x'
set ylabel 'y'
set zlabel 'z'

set xyplane at Zmin
unset xzeroaxis
unset yzeroaxis
unset zzeroaxis

set border 1023-128
set xtics out nomirror
set ytics out nomirror
set ztics out
#set xtics add ('' -4)

Frac(z) = (z - Zmin) / (Zmax - Zmin)

#MyPalette01
Red01(z) = 0
Green01(z) = 255*256
Blue01(z) = int(255*Frac(z))
MyPalette01(z) = Red01(z) + Green01(z) + Blue01(z)

#MyPalette02
Red02(z) = 255*256*256
Green02(z) = int(165*Frac(z))*256
Blue02(z) = 0
MyPalette02(z) = Red02(z) + Green02(z) + Blue02(z)

# MyPalette03
Red03(z)   = int(-95*Frac(z)+255)*256*256
Green03(z) = int(32*Frac(z))*256
Blue03(z)  = int(-15*Frac(z)+255)
MyPalette03(z) =  Red03(z) + Green03(z) + Blue03(z) 

#Red03(z)   = int(255*Frac(z))*256*256
#Green03(z) = int(255*Frac(z))*256
#Blue03(z)  = int(255*Frac(z))

set object circle at -1,-2,3 size 0.05 front
unset key

set pm3d
set pm3d lighting primary 0.5 specular 0.6
set pm3d ftriangles
set style fill transparent solid 0.75 noborder
set pm3d depthorder
unset colorbox

set view 68, 126

splot $Data01 u 1:2:3:(MyPalette01($3)) w l lc rgb var notitle, \
      $Data02 u 1:2:3:(MyPalette02($3)) w l lc rgb var notitle, \
      $Data03 u 1:2:3:(MyPalette03($3)) w l lc rgb var notitle

我在这里找到了如何为每个平面设置多种样式: Gnuplot 5.2 splot: Multiple pm3d palette in one plot call

这就是它的外观:

有任何想法吗?奇怪的飞机

标签: gnuplotcoordinates

解决方案


推荐阅读