【发布时间】:2014-02-12 00:42:01
【问题描述】:
现在我有一个使用图形(drawLine、drawArc 等)绘制的篮球场,并且有一个 mouseClicked 事件,该事件将根据布尔 shotMade 是否为真(设置使用底部框架的“Make”和“Miss”按钮)。现在,我实际上将在 getX()-6 和 getY()+6 处生成“X”或“O”,这样“X”或“O”的 center 将是在鼠标点击的地方绘制(使用 g.drawString() 将从左下角开始绘制 'X' 或 'O',因此它不会直接居中)。
我的问题在于我对两分球和三分球的区别。现在,在 x 值 52 和 448 处的三分线上在球场的角落有垂直直线,所以我知道任何 x 小于 52 或大于 448 的点击点也将是三分作为y值大于250的任何点,表示键的顶部,或沿弧线任意点的最高y值。为了确定弧上任意位置的三个或两个,我有一个想法,将用于绘制弧的每个 x 和 y 像素存储到两个 ArrayList 中(一个用于 x,一个用于 y),当鼠标位于单击某个点,它将在其列表中搜索 x 值,并检查 y 点是否大于其列表中相应点的 y 点。我用 g.drawArc(52,-110,396,360,0,-180) 画了圆弧,将圆心放在点 (250, 70)。
因此,使用所有这些信息,我首先想知道如何使用某些公式将每个像素值存储到 ArrayList 中以计算椭圆周围的每个点,然后如何检查是否单击了点确实是三两。
感谢任何帮助,包括任何更有效的想法或其他想法。谢谢!
【问题讨论】:
标签: java graphics arraylist ellipse