我正在尝试重新创建玻尔原子模型,此时我已经设法使电子相对于轨道中的电子总数具有足够的位置,但现在我正在努力使它们旋转围绕所述轨道。 我遇到的问题是路径过渡使它们从所述位置朝向轨道中心,而不是使它们围绕轨道旋转。
好吧,我有这个节点:
@FXML
private Circle orbital;
@FXML
private Circle Electron;
@FXML
private Circle Electron2;
@FXML
private Circle Electron3;
Run Code Online (Sandbox Code Playgroud)
这是让它们旋转的方法:
private void animate(Circle electron, Circle orbital, double angulo, int duration) {
Path path = new Path();
double anguloRadianes = Math.toRadians(angulo);//pass the angle to radians
double X = orbital.getCenterX() + orbital.getRadius() * Math.cos(anguloRadianes);//calculate the x coordinate of the position of the electron
double Y = orbital.getCenterY() + orbital.getRadius() * Math.sin(anguloRadianes);//calculate the y coordinate of the position of the electron
path.getElements().add(new javafx.scene.shape.MoveTo(X, …Run Code Online (Sandbox Code Playgroud) 我正在研究一种元素周期表,有一个事件最终,当您将鼠标悬停时,会放大一点所述元素并显示更多信息,但事实是它并没有真正完成这项工作很好。可以说是跟踪,因为如果鼠标移动得有点快,或者很快离开位于边缘的面板,它就不会检测到鼠标的退出。这是鼠标进入或退出时应执行的动画代码:
public void onScale(int i){
double currentScaleX = Panes[i].getScaleX();
double currentScaleY = Panes[i].getScaleY();//stores the current scale
if (currentScaleX == 1.0 && currentScaleY == 1.0) {//verify that said scale is the original (equal to 1)
TranslateTransition translate = new TranslateTransition(Duration.millis(50), Symbol[i]);
translate.setToY(-4);
translate.playFromStart();//move the symbol up a little
TranslateTransition tratn = new TranslateTransition(Duration.millis(50), AtomicNumber[i]);
tratn.setToY(-2);
tratn.playFromStart();
TranslateTransition tratm = new TranslateTransition(Duration.millis(50), AtomicMass[i]);
tratm.setToY(-2);
tratm.playFromStart();
TranslateTransition trnm = new TranslateTransition(Duration.millis(50), Name[i]);
trnm.setToY(3);
trnm.playFromStart();
AtomicMass[i].setVisible(true);
OxidationNumber[i].setVisible(true);//makes the atomic mass and oxidation number visible …Run Code Online (Sandbox Code Playgroud)