旋转风车

实现效果

这样的一个风车不断均匀的顺时针旋转。

实现代码

import javafx.animation.Animation;
import javafx.animation.Interpolator;
import javafx.animation.RotateTransition;
import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.layout.Pane;
import javafx.scene.paint.Color;
import javafx.scene.shape.Circle;
import javafx.stage.Stage;
import javafx.scene.shape.Arc;
import javafx.scene.shape.ArcType;
import javafx.util.Duration;public class Main extends Application {@Overridepublic void start(Stage primaryStage) throws InterruptedException {Pane pane = new Pane();  // 创建一个面板// 画一个圆,并将圆的圆心和半径和面板大小进行绑定,确保圆永远显示在中间,设置边缘为黑色,内部为白色Circle circle = new Circle();  circle.centerXProperty().bind(pane.widthProperty().divide(2));circle.centerYProperty().bind(pane.heightProperty().divide(2));circle.radiusProperty().bind(pane.widthProperty().divide(3));circle.setStroke(Color.BLACK);circle.setFill(Color.WHITE);// 画第一片扇形,同样的方式固定圆心,根据圆的半径来改变扇形半径,使其与圆的边沿存在间隙Arc arc1 = new Arc();arc1.centerXProperty().bind(circle.centerXProperty());arc1.centerYProperty().bind(circle.centerYProperty());arc1.radiusXProperty().bind(circle.radiusProperty().divide(1.02));arc1.radiusYProperty().bind(circle.radiusProperty().divide(1.02));arc1.setStartAngle(30);  // 定义弧的起始角度arc1.setLength(60);  // 弧的角度范围arc1.setFill(Color.RED);arc1.setType(ArcType.ROUND);  // 弧的闭合类型['ArcType.OPEN', 'ArcType.CHORD']Arc arc2 = new Arc();arc2.centerXProperty().bind(circle.centerXProperty());arc2.centerYProperty().bind(circle.centerYProperty());arc2.radiusXProperty().bind(circle.radiusProperty().divide(1.02));arc2.radiusYProperty().bind(circle.radiusProperty().divide(1.02));arc2.setStartAngle(30+90);arc2.setLength(60);arc2.setFill(Color.RED);arc2.setType(ArcType.ROUND);Arc arc3 = new Arc();arc3.centerXProperty().bind(circle.centerXProperty());arc3.centerYProperty().bind(circle.centerYProperty());arc3.radiusXProperty().bind(circle.radiusProperty().divide(1.02));arc3.radiusYProperty().bind(circle.radiusProperty().divide(1.02));arc3.setStartAngle(30+180);arc3.setLength(60);arc3.setFill(Color.RED);arc3.setType(ArcType.ROUND);Arc arc4 = new Arc();arc4.centerXProperty().bind(circle.centerXProperty());arc4.centerYProperty().bind(circle.centerYProperty());arc4.radiusXProperty().bind(circle.radiusProperty().divide(1.02));arc4.radiusYProperty().bind(circle.radiusProperty().divide(1.02));arc4.setStartAngle(30+270);arc4.setLength(60);arc4.setFill(Color.RED);arc4.setType(ArcType.ROUND);// 将以上所有的结点加入面板当中pane.getChildren().addAll(circle, arc1, arc2, arc3, arc4);// 创建一个旋转的过渡动画,构建方法中,第一个参数指定完成一次旋转所需要的时间,第二个参数是旋转的对象RotateTransition rt = new RotateTransition(Duration.seconds(1), pane);rt.setByAngle(360);  // 设置旋转的角度rt.setCycleCount(Animation.INDEFINITE);  // 设置旋转次数,我们需要旋转无数次rt.setInterpolator(Interpolator.LINEAR);  // 控制每个过渡周期的加速和减速时间,设置为匀速rt.play();  // 开始播放动画// 将面板加入屏幕,并设置屏幕尺寸和标题Scene screen = new Scene(pane, 500, 500);primaryStage.setTitle("byack");primaryStage.setScene(screen);primaryStage.show();}
}

运动的圆

实现效果

实现代码

import javafx.animation.Animation;
import javafx.animation.PathTransition;
import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.layout.Pane;
import javafx.scene.paint.Color;
import javafx.scene.shape.*;
import javafx.stage.Stage;
import javafx.util.Duration;public class Main extends Application {@Overridepublic void start(Stage primaryStage) throws InterruptedException {Pane pane = new Pane();  // 创建一个面板Circle circle = new Circle();circle.setCenterX(50);circle.setCenterY(150);circle.setRadius(50);circle.setStroke(Color.BLACK);circle.setFill(Color.GREEN);pane.getChildren().add(circle);// 创建路径转变,其实坐标为(50, 150),终点坐标为(450, 150)PathTransition pathTransition=new PathTransition(Duration.seconds(2), new Line(50, 150, 450, 150), circle);pathTransition.setCycleCount(Animation.INDEFINITE);pathTransition.play();// 将面板加入屏幕,并设置屏幕尺寸和标题Scene screen = new Scene(pane, 500, 300);primaryStage.setTitle("byack");primaryStage.setScene(screen);primaryStage.show();}
}

参考资料

https://docs.oracle.com/javafx/2/api/javafx/animation/RotateTransition.html

用JavaFX几个简单动画——旋转风车、运动的圆相关推荐

  1. java编写旋转风车_用JavaFX几个简单动画——旋转风车、运动的圆

    旋转风车 实现效果 这样的一个风车不断均匀的顺时针旋转. 实现代码 import javafx.animation.Animation; import javafx.animation.Interpo ...

  2. java 多线程 动画_Java多线程实现简单动画(小球运动)效果

    Ŀ¼ 首先,严格按照操作系统理论来说,多线程并没有实现真正的同时进行.而是CPU将工作时间分成很多很短的时间片(Time slicing),每个时刻只能执行一个线程. 主要有两种方式实现多线程,一种是 ...

  3. Java多线程实现简单动画(小球运动)效果

    目录 目录 1.多线程的两种实现方式 1.0.关于多线程理解 1.1.Runnable 1.2.Thread 2.实现动画效果的两种方式 2.0.实现过程理解 2.1.画板(JPanel)线程 2.2 ...

  4. html5 制作风车,[网页设计]html5 requestAnimationFrame制作动画:旋转风车

    详细内容请点击 在以往,我们在网页上制作动画效果的时候,如果是用javascript实现,一般都是通过定时器和间隔来实现的,出现HTML5之后,我们还可以用CSS3 的transitions和anim ...

  5. requestAnimationFrame制作动画:旋转风车

    在以往,我们在网页上制作动画效果的时候,如果是用javascript实现,一般都是通过定时器和间隔来实现的,出现HTML5之后,我们还可以用CSS3 的transitions和animations很方 ...

  6. CSS3动画制作的旋转风车,大家五一节日快乐

    ✅作者简介: 大家好五一快乐,我是痴心阿文,你们的学友哥,今天给大家分享一个CSS3动画制作的旋转风车!

  7. android 天气动画,安卓实现旋转风车动画(仿华为天气预报)

    旋转风车实现效果 实现方案 对于风车的立柱部分,采用一张固定背景图: 对于风车上面旋转部分,采用一张图,通过安卓属性动画进行旋转. 注意点: 因为是采用两张图叠加而形成的效果,所以需要注意调整两张图的 ...

  8. 纯CSS制作3D旋转风车动画效果

    效果图展示        HTML源码: <!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"&g ...

  9. 纯CSS3实现旋转风车

    今天我们依然来做一个比较简单的CSS3动画-五彩风车随风旋转.这个动效和上一篇教程一样,仅使用CSS3完成.我们使用了一些常见的CSS3动画技巧,再加上传统CSS的三角形制作手法,就完成了风车随风旋转 ...

最新文章

  1. Python学习之变量、对象和引用
  2. How do I sort groups of data items?(WPF)
  3. 1.Android新版开发教程笔记—Android ADB工具使用
  4. SP263 PERIOD - Period
  5. 全网首发:使用命令行编译VS工程为Win32/x64
  6. CentOS 美化记录
  7. 断层约束的等值线追踪
  8. 仿生蜘蛛机器人的制作
  9. Juniper防火墙无法登陆的问题解决
  10. MFC之菜单栏的相关使用14
  11. macOS 升级12.6后 Electron 应用闪退
  12. 深圳大厂程序员自述:我37岁,年薪百万,等着被公司干掉!
  13. iPhone 12手机真实信号强度查看方法教程
  14. python爬取QQ音乐免费歌曲 2020.7.26
  15. python中代码注释使用的符号是_Python语句中用于注释代码的符号是
  16. spire.office,Spire.Office 5.3.7组件的最新版本
  17. 计算机产业、互联网造富的时代
  18. LeetCode 287---Find the Duplicate Number
  19. 面向OLAP的列式存储DBMS-11-[ClickHouse]的常用字符串操作
  20. python | 时间序列折线图

热门文章

  1. 计算机科学留学硕士工资,揭晓美国大学研究生毕业起薪TOP50排行榜单 你选对了吗?...
  2. 【华人学者风采】刘小平 中山大学
  3. 25个超酷手绘插图的网站设计
  4. Android利用jsoup爬虫爬网页数据(一)
  5. 计算机桌面文件在哪儿,电脑微信接收文件存在哪里 接收文件保存电脑位置介绍...
  6. 微信公众平台对接C#-普通消息接收
  7. 理财通app的设计与实现(六)
  8. wfp 禁用ip_WFP网络过滤驱动——限制网站访问
  9. 【MES】聚酯,纺丝,假捻的工艺路线
  10. vue 导出word文档(包括图片)