为什么java 的Graphics类中没有画点函数?

2025-05-24 01:37:40
推荐回答(4个)
回答1:

首先,点动成线,也就是如果把一条线花短一点就可以类似一个点。
其次,点的大小问题,就像windows自带的画图一样,点的大小是可以改变的,很灵活,用代码写很麻烦。
在其次,Graphics虽说没有点,但是你画一个实心的圆就是点了
g.fillOval( x, y, width, height);...
最后,点是特别特殊的,因为是实心的,画大点就是一个小圆,画小点又不好看,所以干脆就不提供画点的方法了。

回答2:

因为Graphics类不需要画点函数,可以通过其他函数实现。

可以使用fill()方法,定义一个专门画点的函数。

代码如下:

public void drawPoint(int x,int y,Graphics G){
    Shape shape = new Rectangle2D.Double(x,y,1,1);
    ((Graphics2D)G).fill(shape);
}

或可规定颜色的

public void drawPoint(int x,int y,Graphics G,Color c){
    Shape shape = new Rectangle2D.Double(x,y,1,1);
    G.setColor(c);
    ((Graphics2D)G).fill(shape);
}

这样画出来的是一个很小的长方形,看上去就像点一样。

回答3:

数学上的点是没有实体的,也就是无限小的一个概念,
现实的点实际上是用圆来表示点.
就像直线是没有宽度一样,没有宽度的直线相交,得到的点既没有长度,也没有宽度.
为了在显示器上表示这样的点有两种方案.
line(x,y,x,y+1);//注意,根据需要,只有一个维度+1,这样得到的只有一个像素点.
如果不+1,这条直线实际上就是不存在的.
这样,得到的就是一个点,在显示屏上,长和宽为1就是一个像素点,显然我们无法得到比一个像素点更小的点了.
不建议用
circle(x,y,r);取点,r的最小值为1,得到的点最小为4个像素点,而且,计算机还要用π计算
除此之外,画点的其他方法我还在寻找中.

回答4:

fillOval
public abstract void fillOval(int x,
int y,
int width,
int height)

使用当前颜色填充外接指定矩形框的椭圆。

参数:
x - 要填充椭圆的左上角的 x 坐标。
y - 要填充椭圆的左上角的 y 坐标。
width - 要填充椭圆的宽度。
height - 要填充椭圆的高度。

你把width,height 设置为相差1 不就是点了