请教java绘制平行斜线的算法

梦情 2010-01-04 04:07:54
现有一段程序,实现了在多边形中绘制平行的填充线,但问题是现在画出的平行线都是水平的,我想改成平行线都是倾斜45度的,一时想不明白如何写算法,请高手指教


public static void drawSelPolygon(Graphics2D g2, Color frameColor, int[] x, int[] y, int numPoints) {
g2.setColor(frameColor);
//初始化多边形
Polygon p = new Polygon(x, y, numPoints);
//取得多边形外接矩形
Rectangle r = p.getBounds();
//裁切
g2.setClip(p);
//绘制填充线
for (int j = r.y; j < r.y + r.height; j = j + 6) {
//<--NG
Line2D line = new Line2D.Float((float) r.x, (float) j, (float) (r.x + r.width), (float) j);
g2.draw(line);
}
//绘制多边形
g2.drawPolygon(p);
}
...全文
221 7 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
墨水鱼 2010-01-05
  • 打赏
  • 举报
回复
试试这一段:

public static void drawSelPolygon(Graphics2D g2, Color frameColor, int[] x, int[] y,
int numPoints) {
g2.setColor(frameColor);
//初始化多边形
Polygon p = new Polygon(x, y, numPoints);
//取得多边形外接矩形
Rectangle r = p.getBounds();
//裁切
g2.setClip(p);
//绘制填充线
for (int j = r.y; j-r.width < r.y + r.height; j = j + 6) {
//<--NG
Line2D line = new Line2D.Float(r.x, j, (r.x + r.width), j-r.width);
g2.draw(line);
}
//绘制多边形
g2.drawPolygon(p);
}
苍蝇①号 2010-01-05
  • 打赏
  • 举报
回复
坐标仿射后,像平面画图一样
梦情 2010-01-05
  • 打赏
  • 举报
回复
不好意思,是我搞错了,已经完美解决了,结贴加分
梦情 2010-01-05
  • 打赏
  • 举报
回复
补图
梦情 2010-01-05
  • 打赏
  • 举报
回复
感谢inkfish的回复,不过有一点小问题,Polygon没有被完全填充,只是填充了一部分,如图,望指教
bestfreddy2 2010-01-04
  • 打赏
  • 举报
回复
用坐標可以麼?
xiaohuanjie 2010-01-04
  • 打赏
  • 举报
回复
还真的不会


帮顶

62,634

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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