Java 使用strokeOval在画布上绘制圆-如何让它从鼠标单击网格位置展开

Java 使用strokeOval在画布上绘制圆-如何让它从鼠标单击网格位置展开,java,javafx,canvas,geometry,oval,Java,Javafx,Canvas,Geometry,Oval,这是我绘制程序代码的一部分,我无法从圆心绘制椭圆形,它总是使用鼠标单击作为边界。我试着在屏幕上点击,从这个角度看,圆圈的边界应该随着所有方向的半径相等地增长。希望你能理解我的问题,在这里我做了strokeOvalX-r,Y-r,r,r,但它只是在-x,Y方向上生长,如果strokeOvalX,Y,r,r,r,那么它在x,-Y方向上生长,而不是以x,Y为中心向所有方向均匀生长。解决了这个问题。需要将半径乘以2=strokeOvalX-r,Y-r,r*2,r*2来解决它。需要将半径乘以2=strok

这是我绘制程序代码的一部分,我无法从圆心绘制椭圆形,它总是使用鼠标单击作为边界。我试着在屏幕上点击,从这个角度看,圆圈的边界应该随着所有方向的半径相等地增长。希望你能理解我的问题,在这里我做了strokeOvalX-r,Y-r,r,r,但它只是在-x,Y方向上生长,如果strokeOvalX,Y,r,r,r,那么它在x,-Y方向上生长,而不是以x,Y为中心向所有方向均匀生长。

解决了这个问题。需要将半径乘以2=strokeOvalX-r,Y-r,r*2,r*2来解决它。需要将半径乘以2=strokeOvalX-r,Y-r,r*2,r*2
Double pytha  = (Math.pow(e.getX() - circ.getCenterX(),2) + Math.pow(e.getY() - circ.getCenterY(),2));
             Double pythaSqr = Math.sqrt(pytha);
             circ.setRadius(pythaSqr);


             gc.strokeOval(circ.getCenterX()-circ.getRadius(), circ.getCenterY()-circ.getRadius(), circ.getRadius(), circ.getRadius());