Java Line2d.double如何设置笔划
你好,我有一个应用程序,你点击一个点,然后点击另一个点,它画了一条笔划为20的线。我希望能够单击该行的任何部分并将其删除Java Line2d.double如何设置笔划,java,graphics2d,java-2d,Java,Graphics2d,Java 2d,你好,我有一个应用程序,你点击一个点,然后点击另一个点,它画了一条笔划为20的线。我希望能够单击该行的任何部分并将其删除 private Shape line = new Line2D.Double(x, y, fx, fy); public highlight(int x, int y, int fx, int fy, int page, boolean fin) { this.x = x; this.y = y; this.fx = fx; this.fy
private Shape line = new Line2D.Double(x, y, fx, fy);
public highlight(int x, int y, int fx, int fy, int page, boolean fin) {
this.x = x;
this.y = y;
this.fx = fx;
this.fy = fy;
line = new Line2D.Double(x, y, fx, fy);
this.fin = fin;
this.page = page;
}
public void tick() {
line = new Line2D.Double(x, y, fx, fy);
if (!fin) {
play.cannotdrawline = true;
fx = Comp.mx;
fy = Comp.my;
} else {
play.cannotdrawline = false;
}
if(line.intersects(Comp.mx,Comp.my,1,1) && play.candeleteline){
if(Comp.ml){
remove = true;
}
}
}
public void render(Graphics g) {
Graphics2D g2d = (Graphics2D) g;
g2d.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);
g2d.setStroke(new BasicStroke(20, BasicStroke.CAP_ROUND, BasicStroke.JOIN_ROUND));
// g.setColor(new Color(190,240,93, 143));
if (line.intersects(Comp.mx, Comp.my,1,1) && play.candeleteline) {
g.setColor(Color.blue);
} else {
g.setColor(Color.red);
}
g.drawLine(x, y, fx, fy);
//g2d.draw(line);
}
}
这一切都很好,我可以删除它,但我必须点击一个非常中间的像素线能够删除它。我知道如何设置绘制直线的笔划,但我不知道如何设置线条形状的笔划(这是检查是否可以删除直线的部分)。我该怎么做
提前谢谢
我知道如何设置绘制直线的笔划,但我不知道如何设置线条形状的笔划(这是检查是否可以删除直线的部分)。我该怎么做
据我所知,你不能,因为,与颜色类似,笔划是Graphics2D对象的属性,而不是形状的属性。但是,您可以使用贴图将某个笔划与某个形状相关联,或者在需要时使用自定义类,例如,如果您需要将多个属性(例如笔划和颜色)与形状相关联,就像可以进行任何其他Java关联一样