我有一个 CAD 应用程序,它允许用户绘制线条和多边形等等。
我面临的一个棘手问题是用户绘图可能非常不精确,例如,用户可能想要绘制两个相互连接的矩形。因此,两个矩形应该共享一条线。然而,用户很容易画两条线,而不是画一条线,它们彼此非常接近,彼此如此接近,以至于当从屏幕上看时,你会误认为它们是同一条线,除了当您放大一点时,它们不是。
我的应用程序将要求用户正确绘制线条(或者我的预处理必须能够进行自动校正),否则我的内部算法(我们称之为算法)将无法正确处理输入。
解决此类问题的最佳策略是什么?我正在考虑将点坐标四舍五入到一定的精度,但是虽然我不能准确指出这种做法的问题,但我觉得这不是正确的做事方式,这会引入一个新的集合的问题。
编辑:为了争论,捕捉不是一个可用的选项。就此而言,各种“输入端”指导均不可用。更正必须通过对我的代码进行预处理来完成,当绘图完成时,但就在我将其提交给我的算法之前。
疯狂的限制,你说。但是用户可以在我的应用程序中构建他们的输入,或者他们可以在其他 CAD 软件中构建他们的输入,然后提交给我的引擎进行计算。我无法控制他们在其他 CAD 软件中的输入方式。
编辑 2:我可以让用户指定要发生的“集群半径”,但重要的是,我需要确保我的预处理算法是一致的,并且不会真正引入一组新问题。
任何想法?