更改Acm(java)中的坐标系
我试图创建一个圆心为坐标(0,0)的圆,但无法将原点从左上角移到圆心。我有什么办法可以做到这一点吗 这张图片显示了左上角的原点,但我希望它在中间更改Acm(java)中的坐标系,java,acm-java-libraries,Java,Acm Java Libraries,我试图创建一个圆心为坐标(0,0)的圆,但无法将原点从左上角移到圆心。我有什么办法可以做到这一点吗 这张图片显示了左上角的原点,但我希望它在中间 public class circle extends GraphicsProgram{ public int size =200; @Override public void run(){ setSize(300, 300); GOval circle =
public class circle extends GraphicsProgram{
public int size =200;
@Override
public void run(){
setSize(300, 300);
GOval circle = new GOval(0,0,size*2,size*2);
add(circle);
}
}
没有可以使用ACM库进行的特定函数调用会更改坐标系。相反,您可以计算出数学,以确定对象应放置在何处,从而使其在屏幕中居中 我们可以将窗口想象成一个矩形,其左上角位于(0,0),右下角位于(
getWidth()
,getHeight()
)。如果要将尺寸为W×H的长方体居中,图片如下所示:
(0, 0) getWidth()/2 getWidth()/2
*-----------------+-----------------+
| | |
| (x, y) W/2 | W/2 |
| *----------+----------+ | getHeight() / 2
| | | | H/2 |
+------+----------+----------+------+
| | | | H/2 |
| +----------+----------+ | getHeight() / 2
| | |
| | |
+-----------------+-----------------*
(getWidth(), getHeight())
根据这张图,你能从数学上算出x
和y
是什么吗?然后可以将这些坐标作为前两个参数输入到GOval
构造函数中
有关ACM图形数学的更多练习,请查看和。对于ACM库,没有可以更改坐标系的特定函数调用。相反,您可以计算出数学,以确定对象应放置在何处,从而使其在屏幕中居中 我们可以将窗口想象成一个矩形,其左上角位于(0,0),右下角位于(
getWidth()
,getHeight()
)。如果要将尺寸为W×H的长方体居中,图片如下所示:
(0, 0) getWidth()/2 getWidth()/2
*-----------------+-----------------+
| | |
| (x, y) W/2 | W/2 |
| *----------+----------+ | getHeight() / 2
| | | | H/2 |
+------+----------+----------+------+
| | | | H/2 |
| +----------+----------+ | getHeight() / 2
| | |
| | |
+-----------------+-----------------*
(getWidth(), getHeight())
根据这张图,你能从数学上算出x
和y
是什么吗?然后可以将这些坐标作为前两个参数输入到GOval
构造函数中
有关ACM图形数学的更多练习,请查看和