如何将圆圈声明为变量?

时间:2015-05-21 14:26:01

标签: java variables graphics geometry

所以我正在尝试创建一个运行java applet的类,然后像drumset这样的车库乐队弹出,然后我可以点击不同的鼓来制作不同的声音。我将鼓设置为我创建的不同圆圈,我试图将圆圈声明为变量,然后我可以比较鼠标点击以查看点击是否在“鼓圈”内。问题是当我尝试将圆圈声明为变量时,我找不到符号错误。当我将变量设置为矩形时,它可以工作,但我不需要矩形。我怎么能这样做?

public class FinalProjectst extends Applet
{
    Image picture;
    Shape base, bT, snare, lT, rT, hh, lC, rC;

    public void init()
    {
        picture = getImage(getDocumentBase(),"drumSet.jpg");

        base  = new Oval (355, 415, 305, 240); //Bass
        bT    = new Oval (715, 360, 325, 245); //Bottom Tom
        snare = new Oval ( 35, 410, 290, 200); //Snare
        lT    = new Oval (283, 130, 185, 165); //Left Tom
        rT    = new Oval (543, 120, 200, 175); //Right Tom
        hh    = new Oval (  0, 225, 250, 150); //High Hat
        lC    = new Oval ( 10,   0, 305, 195); //Left Cymbal
        rC    = new Oval (765,   0, 505, 275); //Right Cymbal
    }

如果我将形状和椭圆形声明为矩形,则可以正常工作,但这不是我需要的。

1 个答案:

答案 0 :(得分:0)

您可以使用课程Ellipse2D。宽度等于其高度的椭圆是圆形。但它是一个抽象类,因此您无法直接实例化它。你必须做类似的事情:

Image picture;
Ellipse2D base, bT, snare, lT, rT, hh, lC, rC;

public void init()
{
    picture = getImage(getDocumentBase(),"drumSet.jpg");

    base  = new Ellipse2D.Double(355, 415, 305, 240); //Bass
    bT    = new Ellipse2D.Double (715, 360, 325, 245); //Bottom Tom
    snare = new Ellipse2D.Double ( 35, 410, 290, 200); //Snare
    lT    = new Ellipse2D.Double (283, 130, 185, 165); //Left Tom
    rT    = new Ellipse2D.Double (543, 120, 200, 175); //Right Tom
    hh    = new Ellipse2D.Double (  0, 225, 250, 150); //High Hat
    lC    = new Ellipse2D.Double ( 10,   0, 305, 195); //Left Cymbal
    rC    = new Ellipse2D.Double (765,   0, 505, 275); //Right Cymbal
}

您还可以使用方法

测试碰撞
boolean contains(double x, double y)