【发布时间】:2013-02-04 03:46:20
【问题描述】:
在 MATLAB 的 Voronoi 图函数中,无穷远处的边的顶点绘制在某个远点。看看here 页面上的第一张图。 Y 轴上从顶部开始的第一个点是 (0,0.75)。 (虽然它超出了图像的范围)。我知道我是否运行以下 matlab 函数:
[vx,vy]=voronoi(x,y)
我可以得到顶点的坐标,但它们会超出绘图的范围。有什么方法可以获取绘图范围内的坐标(例如,上面提到的 (0,0.75))。
【问题讨论】:
在 MATLAB 的 Voronoi 图函数中,无穷远处的边的顶点绘制在某个远点。看看here 页面上的第一张图。 Y 轴上从顶部开始的第一个点是 (0,0.75)。 (虽然它超出了图像的范围)。我知道我是否运行以下 matlab 函数:
[vx,vy]=voronoi(x,y)
我可以得到顶点的坐标,但它们会超出绘图的范围。有什么方法可以获取绘图范围内的坐标(例如,上面提到的 (0,0.75))。
【问题讨论】:
您只需要检测vx,vy 中的哪一个穿过轴(使用find 或逻辑条件find(vx<0)、find(vy>1) 等...),然后应用@987654325 线的方程@。对于您想要的点(恰好是 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)
【讨论】: