绘制圆坐标问题
来源:2-5 整理绘制工具类

慕沐1471085
2022-03-04
public static void strokeCircle(Graphics2D g2d, int x, int y, int r) {
Ellipse2D circle = new Ellipse2D.Double(x - r, y - r, 2 * r, 2 * r);
g2d.draw(circle);
}
为什么这个坐标需要x-r,y-r 比如canvasWidth/2 canvasHeight/2 如果不减r不是正好在画布中心画圆吗?但是我尝试了下发现和我想的不一样圆在右下角。
写回答
1回答
-
这个函数不是指定圆心和半径,而是指定一个矩形,在这个矩形内部绘制切圆。第一和第二个参数是矩形的左上角坐标,第三和第四个参数是矩形的长和宽。
所以如果我们已知我们要绘制的圆,圆心是 x,y ,半径是 r,则这个圆的外切矩形,左上角坐标就是 (x - r, y - r),这个矩形的长和宽就是 2*r。
继续加油!:)
10
相似问题