JavaFx中对象的SnapLineSnapResult

时间:2014-12-04 03:47:11

标签: javafx

目前我有一个项目用于绘制带有线条和图像的房间,用户可以通过点击代表他们想要添加的内容的按钮来选择。 I.E.如果他们想要淋浴,则按下淋浴按钮并在窗格中显示图像。淋浴可以调整大小并在窗格中移动。用户还可以使用线条绘制对象或墙壁。线条可以调整大小,旋转或移动。我现在正试图让这些对象相互交互。假设用户使用线条来制作对象,当线条靠近另一个对象时,被移动的线条会捕捉到另一个对象。我找到了一个拥有SnapLineSnapResult的第三方库,但我没有看到有人使用它的任何东西。这是桌面JavaFX可用的东西,还是触摸操作,是否有人有代码建模或其他解决方案?

SnapLineSnapResult

如果我可以使用这个类,那么我的代码行如下:

    line.setOnMouseDragged((MouseEvent event1) -> {
                    // in resize region
                    if (isInResizeZoneLine(line, event1)) {
                        // adjust line
                        line.setEndX(event1.getX());
                    }
                    // in movable region
                    else {
                        Point2D currentPointer = new Point2D(event1.getX(), event1.getY());
                        if (bound.getBoundsInLocal().contains(currentPointer)) {
   /*--------*/             // potential place for if (near other object to be snapped)
                            double lineWidth = line.getEndX() - line.getStartX();
                            line.setStartY(currentPointer.getY());
                            line.setEndY(currentPointer.getY());
                            line.setStartX(currentPointer.getX() - lineWidth/2);
                            line.setEndX(currentPointer.getX() + lineWidth/2);
                        }
                    }
                });

0 个答案:

没有答案