matlab中生成voronoi图时,能否设定一个边界使得voronoi顶点不出现无穷远点?

matlab中生成voronoi图时,能否设定一个边界使得voronoi顶点不出现无穷远点?
matlab中voronoin能得到所有的voronoi顶点的坐标,但这些坐标中含有inf的无穷点.能否设定一个边界使得无穷远点被约束在边界上?
如下图所示,图中的正方形框是我希望设定的边界.点D的voronoi顶点中,点A落在边界之外,我希望这样的点被边界约束为点B和点C,即约束在边界上.请问matlab怎么实现?
184881174 1年前 已收到1个回答 举报

gao_jia 幼苗

共回答了19个问题采纳率:73.7% 举报

下个mpt工具箱
里面的mpt_voronoi可以实现你的要求
MPT_VORONOI Computes the voronoi diagram via mpLP
[Pn]=mpt_voronoi(points,Options)
---------------------------------------------------------------------------
DESCRIPTION
---------------------------------------------------------------------------
The voronoi diagram is a partition of the state space; For a given set of
points pj,each region Pn(j) is defined as
Pn(j)={x in R^n | d(x,pj)

1年前 追问

5

184881174 举报

您好,我安装了mpt工具箱,但在使用mpt_voronoi函数时,输入参数一直不对,主要是Options.pbound要求是polytope,我查看了matlab的文档还是没弄懂。您能否示意下我这个问题的matlab代码应该怎么写?简化起见只取其中20个点吧。 x=[42,28,32,58,69,86,22,51,43,24,75,79,39,32,48,28,16,40,29,25]; y=[84,23,43,37,69,94,22,75,52,75,87,24,93,4,56,88,17,43,33,57]; 横坐标和纵坐标都限制在0~100之间 谢谢!

举报 gao_jia

X=[42,28,32,58,69,86,22,51,43,24,75,79,39,32,48,28,16,40,29,25]; Y=[84,23,43,37,69,94,22,75,52,75,87,24,93,4,56,88,17,43,33,57]; Options.plot=1; v=[0 0;0 100;100 100;100 0]; P = polytope(v) Options.pbound=P; mpt_voronoi([X' Y'],Options);

184881174 举报

谢谢!按照您的代码成功得到了受限的voronoi图。请问该怎么得到各个顶点坐标呢(包括voronoi边与边界的交点)?

举报 gao_jia

[Pn]=mpt_voronoi(points,Options) 你研究下Pn的数据结构,里面有点的坐标信息
可能相似的问题
Copyright © 2024 YULUCN.COM - 雨露学习互助 - 17 q. 0.023 s. - webmaster@yulucn.com