gpt4 book ai didi

java - 在java中为形状创建boundingBox - 用于选择、拖放、旋转、平移

转载 作者:太空宇宙 更新时间:2023-11-04 06:27:47 24 4
gpt4 key购买 nike

我想创建一个边界框以选择形状。我有一个形状 vector 和所有点的 vector 。目标是将某些形状放入边界框内,然后我可以应用一些变换,例如在 Canvas 上移动某些形状、旋转、调整大小等。

现在我专注于边界框来选择和移动某些形状。其他转换稍后再说。

这是类,我知道至少,我需要这个变量

public class BoundingBox {

int xmax;
int xmin;
int ymax;
int ymin;

public BoundingBox(Vector<Point> points) {

}

我还实现了其他类,例如,我有一个带有此的编辑器面板

Vector<Shape> shapes;
// Current shape that is in construction (if any)
Shape currentShape;
// shape that is selected, if any
Shape selectedShape;

实现形状的类

protected Vector<Point> points;
protected boolean isAShapeBeingBuilt; //is any shape being built?
protected boolean selected; //is any shape selected?
protected ShapesEditorPanel parent; // reference to the panel

显然,我无法将所有代码放在这里,但我希望这些信息可以帮助我。主要问题是如何选择并移动盒子内的某些形状!

最佳答案

首先,不要使用 Vector,因为您的代码在单个线程上运行。请改用 ArrayList。

然后,如果你想找到边界框,你需要创建一个矩形,其对角线由点(smallestX,smallestY)和点(biggestX,largestY)定义。迭代形状的点以查找 x 和 y 坐标的最小值和最大值。

关于java - 在java中为形状创建boundingBox - 用于选择、拖放、旋转、平移,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26549832/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com