gpt4 book ai didi

java - 如何在 Java 中绘制有向箭头线?

转载 作者:IT老高 更新时间:2023-10-28 20:24:22 24 4
gpt4 key购买 nike

我想通过 Java 画一条有向箭头线。

目前我在使用java.awt.Line2D.Double类画线

g2.setStroke(new BasicStroke(2.0f, BasicStroke.CAP_BUTT, BasicStroke.JOIN_BEVEL)); // g2 is an instance of Graphics2D
g2.draw(new Line2D.Double(x1,y1,x2,y2));

但只有直线出现,没有方向箭头出现。 BasicStroke.Join_BEVEL 用于绘制有向箭头。当两条线段相交时应用。

我正在绘制的线与矩形的边框相交,但未绘制有向箭头。只画了一条简单的线。

我有什么遗漏吗?

最佳答案

虽然 Pete 的帖子内容非常全面,但我还是使用这种方法绘制了一条非常简单的线,其末端有一个小三角形。

// create an AffineTransform 
// and a triangle centered on (0,0) and pointing downward
// somewhere outside Swing's paint loop
AffineTransform tx = new AffineTransform();
Line2D.Double line = new Line2D.Double(0,0,100,100);

Polygon arrowHead = new Polygon();
arrowHead.addPoint( 0,5);
arrowHead.addPoint( -5, -5);
arrowHead.addPoint( 5,-5);

// [...]
private void drawArrowHead(Graphics2D g2d) {
tx.setToIdentity();
double angle = Math.atan2(line.y2-line.y1, line.x2-line.x1);
tx.translate(line.x2, line.y2);
tx.rotate((angle-Math.PI/2d));

Graphics2D g = (Graphics2D) g2d.create();
g.setTransform(tx);
g.fill(arrowHead);
g.dispose();
}

关于java - 如何在 Java 中绘制有向箭头线?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2027613/

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