我用java画直线,怎样才能使得线条粗些?

dingdong1104 2003-10-28 09:05:27
我用java画直线,怎样才能使得线条粗些?
请给出代码,谢谢!
...全文
131 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
lvsam 2003-10-29
  • 打赏
  • 举报
回复
不好意思,上面敲错了,应该是在直线的两边多画些线。
如果你的线是(x1,y1)(x2,y2),你就可以再画几条,如
(x1,y1+1)(x2,y2+1)
(x1,y1+2)(x2,y2+2)
(x1,y1+3)(x2,y2+3)
.....
不过,要在x坐标还是Y坐标上加增量,也或者更完美再两者上面都加增量(这样直线更圆滑),你还是稍微看一下计算机图形学。
lvsam 2003-10-29
  • 打赏
  • 举报
回复
直线的函数很简单,也可以在直线的周围补线。例如,根据需要在直线上的每个点的左右加画多条线,很简单。
lqz790815 2003-10-29
  • 打赏
  • 举报
回复
画一个实心的矩形
nullhue 2003-10-29
  • 打赏
  • 举报
回复
import java.applet.Applet;
import java.awt.Color;
import java.awt.Graphics;

public class thickLine extends Applet {

public void init() {
}

public void paint(Graphics g) {
drawThickLine(g, 0, 0, getSize().width, getSize().height, 5, new Color(0).black);

}

public void drawThickLine(Graphics g, int x1, int y1, int x2, int y2, int thickness, Color c) {
// The thick line is in fact a filled polygon
g.setColor(c);
int dX = x2 - x1;
int dY = y2 - y1;
// line length
double lineLength = Math.sqrt(dX * dX + dY * dY);

double scale = (double) (thickness) / (2 * lineLength);

// The x and y increments from an endpoint needed to create a rectangle...
double ddx = -scale * (double) dY;
double ddy = scale * (double) dX;
ddx += (ddx > 0) ? 0.5 : -0.5;
ddy += (ddy > 0) ? 0.5 : -0.5;
int dx = (int) ddx;
int dy = (int) ddy;

// Now we can compute the corner points...
int xPoints[] = new int[4];
int yPoints[] = new int[4];

xPoints[0] = x1 + dx;
yPoints[0] = y1 + dy;
xPoints[1] = x1 - dx;
yPoints[1] = y1 - dy;
xPoints[2] = x2 - dx;
yPoints[2] = y2 - dy;
xPoints[3] = x2 + dx;
yPoints[3] = y2 + dy;

g.fillPolygon(xPoints, yPoints, 4);
}
}

67,512

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧