在MATLAB的Voronoi图函数中,无穷远处边缘的顶点绘制在某个远点。请查看页面here上的第一个图表。 Y轴顶部的第一个点是(0,0.75)。 (虽然它超出了图像的范围)。我知道如果我运行以下matlab函数:
[vx,vy]=voronoi(x,y)
我可以得到顶点的坐标,但它们将超出绘图的范围。有没有办法在绘图的边界内得到坐标(例如,如上所述的(0,0.75))。
答案 0 :(得分:1)
您只需要检测哪些vx,vy
穿过轴(使用find
或逻辑条件,find(vx<0)
,find(vy>1)
等...),然后应用行y=a*x+b
的等式。对于您想要的点(恰好是vx,vy
的第19列,斜率a
为:
a=diff(vy(:,19))/diff(vx(:,19));
与y轴的交点由b
:
B = VY(1,19)-a * VX(1,19)
b =
0.7546
要计算b
我选择了第一个点[vx(1,19),vy(1,19)]
,但这当然也适用于第二点,即b=vy(2,19)-a*vx(2,19)