我正在尝试在JApplet上绘制交互式平面直线图(PSLG)。我使用鼠标单击来确定PSLG的顶点。

这是我用来绘制PSLG边缘的算法
1.添加用户执行鼠标单击的点作为PSLG的顶点。
2.如果他单击第二个点,则会在该点和先前单击的点之间直接创建一条边

由于使用此算法,我观察到了某些缺陷:


无法创建不连续的平面集,例如仅说一条线段
仅当用户单击起点所在的确切位置时,才会创建封闭的多边形[基本上,如果用户单击距起点非常近的位置,则由于它出现,所以无法确定该点实际上是起点在一定的公差范围之内]。


我在这里检查了一些类似的问题,人们建议使用JFreeChart库。但据我所知,这些问题中的情况是PSLG的观点已经众所周知。我不知道JFreeChart是否可以用于创建交互式PSLG。

我考虑过要添加点并有一个按钮,该按钮会在点之间添加边,但是如果那样的话,选择2个点仍然会涉及2中遇到的邻近问题。

我想知道是否有人可以建议我采用更好的方法来处理这种情况。

提前致谢

最佳答案

GraphPanel可以适应此任务,尽管它可以从更高级的edge model中受益,以便更快地进行搜索。还考虑JGraph

09-28 05:28