我正在尝试在JApplet上绘制交互式平面直线图(PSLG)。我使用鼠标单击来确定PSLG的顶点。
这是我用来绘制PSLG边缘的算法
1.添加用户执行鼠标单击的点作为PSLG的顶点。
2.如果他单击第二个点,则会在该点和先前单击的点之间直接创建一条边
由于使用此算法,我观察到了某些缺陷:
无法创建不连续的平面集,例如仅说一条线段
仅当用户单击起点所在的确切位置时,才会创建封闭的多边形[基本上,如果用户单击距起点非常近的位置,则由于它出现,所以无法确定该点实际上是起点在一定的公差范围之内]。
我在这里检查了一些类似的问题,人们建议使用JFreeChart库。但据我所知,这些问题中的情况是PSLG的观点已经众所周知。我不知道JFreeChart是否可以用于创建交互式PSLG。
我考虑过要添加点并有一个按钮,该按钮会在点之间添加边,但是如果那样的话,选择2个点仍然会涉及2中遇到的邻近问题。
我想知道是否有人可以建议我采用更好的方法来处理这种情况。
提前致谢
最佳答案
GraphPanel
可以适应此任务,尽管它可以从更高级的edge model中受益,以便更快地进行搜索。还考虑JGraph
。