Java中圆弧角的计算
当我在Jframe上单击鼠标右键时,将显示此饼图。我想要的是计算单击事件发生时每个饼图的角度Java中圆弧角的计算,java,graphics,awt,angle,Java,Graphics,Awt,Angle,当我在Jframe上单击鼠标右键时,将显示此饼图。我想要的是计算单击事件发生时每个饼图的角度 Color[] c = {Color.BLACK, Color.RED, Color.BLUE, Color.YELLOW, Color.GREEN, Color.CYAN, Color.MAGENTA, Color.PINK}; for(int i=0; i<8; ++i){ g.setColor(c[i]);
Color[] c = {Color.BLACK, Color.RED, Color.BLUE, Color.YELLOW,
Color.GREEN, Color.CYAN, Color.MAGENTA, Color.PINK};
for(int i=0; i<8; ++i){
g.setColor(c[i]);
g.fillArc(x, y, w, h, i*45, 45);
}
但是计算的角度是不正确的。它有时给我零除的例外。
这是我的右击事件,显示菜单
public void mousePressed(MouseEvent e) {
if(e.isPopupTrigger())
{
CenterX=e.getX();
CenterY=e.getY();
try {
Thread.sleep(300L);
} catch (InterruptedException ex) {
Logger.getLogger(animate.class.getName()).log(Level.SEVERE, null, ex);
}
p.repaint();
}
}
@Override
public void mouseReleased(MouseEvent e) {
if(e.isPopupTrigger()){
s=e.getX();
as=e.getY();
p.mx=e.getX();
p.my=e.getY();
是的,如果
base==0
,即如果x1==CenterX
,将发生被零除的情况
使用。它可以将x/y坐标转换为角度,并为您解决所有繁琐的数学问题。若要更快获得更好的帮助,请发布一篇文章。提供鼠标相对于整个屏幕而不是组件的位置。
public void mousePressed(MouseEvent e) {
if(e.isPopupTrigger())
{
CenterX=e.getX();
CenterY=e.getY();
try {
Thread.sleep(300L);
} catch (InterruptedException ex) {
Logger.getLogger(animate.class.getName()).log(Level.SEVERE, null, ex);
}
p.repaint();
}
}
@Override
public void mouseReleased(MouseEvent e) {
if(e.isPopupTrigger()){
s=e.getX();
as=e.getY();
p.mx=e.getX();
p.my=e.getY();