2

我正在为大学做一个项目,我必须制作自己的原始矢量编辑器,我有两个问题:

  1. 通过保存它的起点坐标、终点坐标、颜色和点的宽度来制作矢量线对象是否正确,它将由哪些组成?Point也是我的课,画在JPanel.
  2. 如果它是正确的,我怎样才能使这条线可选?我唯一能想到的就是检查鼠标坐标是否在线宽之内。

我也有一个限制,不能使用任何标准函数来绘制线条、样条曲线等。

4

4 回答 4

2
  1. 是的,这是正确的。或者你可以用极坐标表示它
  2. 最好的办法实际上是把你的行变成一个Area,它实现Shape并包含,这是你想要的方法。Area是一个很好的抽象,因为它可以表示任何形状,但一切都以相同的方式进行操作。
于 2012-05-02T14:41:50.740 回答
1

您可以使用 Line2D 形状。要检查选择,您可以从 BasicStroke 中 gt 描边 Shape 并检查描边 Shape 是否包含单击点。

于 2012-05-02T15:12:10.253 回答
0

To Point 1:您还需要保存矢量的方向。

第 2 点:有一些像GEF这样的框架可以为您完成这项工作。在这里你必须改变你的模型。你需要两个类:Point 和 Connection

于 2012-05-02T14:47:14.703 回答
0
  1. Vector如果你有一个类start,你可以使用一个类end Point,如果你愿意,你可以这样做。
  2. 你可以有这样的方法:

    private static Shape generateVector(Point start, Point end)
    

    在这种方法中,您可以使用“区域”的一个对象来构建矢量,使用Line2D. 树线如果你想要一个箭头

    或者您可以使用GeneralPathfor 构建它。

对于用鼠标选择一个特定的向量,你可以得到坐标,用getX()getY(),用方MouseEvent​​法询问形状对象,contains用其他颜色重新绘制。

祝你好运!

于 2012-05-02T15:12:20.567 回答