gpt4 book ai didi

java - 如何在考虑 Stroke 的情况下计算路径边界框

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:18:09 25 4
gpt4 key购买 nike

我目前正在使用下面的代码绘制一条线,并希望在我的路径周围设置边界框,但是如果我调用 path.getBounds(),我会得到一个忽略笔划宽度的边界框和线连接因此我的绘图最终在放置在 JViewport 中时剪掉了一些部分。我怎样才能得到真正绘制的边界框。

我唯一找到的是下面的类但是没有源http://pic.dhe.ibm.com/infocenter/jviewtgo/v8r8/index.jsp?topic=%2Fcom.ibm.ilog.jviews.tgo.doc%2Fhtml%2Frefjava%2Fhtml%2Filog%2Ftgo%2Fgrprim%2Fpackage-summary.html

GeneralPath  path = new GeneralPath();
if (fPoints.size() > 0) {
Point first = (Point)fPoints.elementAt(0);
path.moveTo((float)first.getX(),(float) first.getY());
for (int i = 1; i < fPoints.size(); i++) {
Point p1 = (Point) fPoints.elementAt(i);
path.lineTo(p1.x, p1.y);
}
}
g2d.setStroke(new BasicStroke(lineModel.getStrokeWidth(), BasicStroke.CAP_BUTT, BasicStroke.JOIN_ROUND));
g2d.setColor(lineModel.getLineColor());
g2d.draw(path);

最佳答案

我终于找到了解决方案,就是使用笔画对象本身

Stroke s = new BasicStroke(lineModel.getStrokeWidth(), BasicStroke.CAP_BUTT, BasicStroke.JOIN_ROUND);
s.createStrokedShape(path).getBounds();

关于java - 如何在考虑 Stroke 的情况下计算路径边界框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16613230/

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