drawOval()函数怎么算出圆心的坐标?

sun0591 2003-12-01 06:12:32
drawOval(50,50,100,100)圆心的坐标是多少呢?为什么不是(75,75)?
...全文
1296 2 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
kinzey34 2003-12-01
  • 打赏
  • 举报
回复
对于drawOval(int x,int y,int width,int height);来说,
假想有个矩形刚好把圆包住,那么矩形的左上角坐标就是(x,y),矩形的右下角的坐标就是
(x+width,y+height),圆心坐标是(x+width/2,y+height/2)
所以把drawOval(50,50,100,100)这个圆包住的矩形的左上角坐标
是(50,50),右下角是(50+100,50+100),也就是(150,150),圆心是:
(50+100/2,50+100/2),也就是(100,100)

如果换成drawOval(50,50,200,200)的话,圆心坐标就是:
(50+200/2,50+200/2),也就是(150,150)

下面的例子可以观察坐标点

import java.awt.*;
import java.applet.*;
import java.awt.event.*;


public class Oval extends Applet implements MouseMotionListener{
public void init() {
addMouseMotionListener(this);
}
public void paint(Graphics g) {
g.drawOval(50,50,200,200);
}
public void mouseDragged(MouseEvent e){}
public void mouseMoved(MouseEvent e){
this.showStatus(e.getX()+" " +e.getY());
}
}

/*
<HTML>
<HEAD>
</HEAD>
<BODY BGCOLOR="000000">
<CENTER>
<APPLET
code = "Oval.class"
width = "500"
height = "300"
>
</APPLET>
</CENTER>
</BODY>
</HTML>
*/
casl 2003-12-01
  • 打赏
  • 举报
回复
圆心应该在(100,100),drawOval的原型是
public void drawOval(int x,int y,int width,int height);
第三、四个参数是外接矩形的宽度和高度,不是坐标值。

62,635

社区成员

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

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