当前位置: 首页 > news >正文

免费建站源码过年做那些网站致富

免费建站源码,过年做那些网站致富,做网页制作的价格,内部网页制作目录 前言 JavaFX基础 1. GraphicsContext 2. AnimationTimer 代码实现 完整代码 前言 看了Python模拟星空很漂亮,Java也应该必须有一个! 环境:只需要JDK1.8就好!不需要外部包!!! Jav…

 

目录

前言

JavaFX基础

1. GraphicsContext

2. AnimationTimer

代码实现

完整代码


前言

看了Python模拟星空很漂亮,Java也应该必须有一个! 

环境:只需要JDK1.8就好!不需要外部包!!!

JavaFX基础

1. GraphicsContext

GraphicsContext是JavaFX中用于绘图的类,它是Canvas类的成员之一,可以通过Canvas的getGraphicsContext2D()方法获取。GraphicsContext提供了一组方法,用于绘制各种基本形状、图像、文本等。
GraphicsContext中常用的绘图方法如下:

  • strokeRect():绘制一个空心矩形。
  • fillRect():绘制一个实心矩形。
  • strokeOval():绘制一个空心椭圆。
  • fillOval():绘制一个实心椭圆。
  • strokePolygon():绘制一个空心多边形。
  • fillPolygon():绘制一个实心多边形。
  • drawImage():绘制一张图像。
  • strokeText():绘制一段空心文本。
  • fillText():绘制一段实心文本。
  • setLineWidth():设置线条宽度。
  • setStroke():设置线条颜色。
  • setFill():设置填充颜色。
  • setFont():设置字体。

绘图的过程一般是先设置好绘图属性,比如线条宽度、颜色、填充等,然后调用GraphicsContext中的绘图方法进行绘制。

2. AnimationTimer

AnimationTimer是JavaFX中一个用于处理动画的类,它继承自抽象类AnimationTimer,需要实现handle(long now)方法。
使用AnimationTimer类处理动画的步骤如下:

  1. 创建AnimationTimer对象,重写handle(long now)方法。
  2. 在handle(long now)方法中更新动画状态,比如更新物体位置、角度等。
  3. 在handle(long now)方法结尾处调用自身,以实现动画的连续播放。

代码实现

用上面的 GraphicsContext 对象(画笔)绘制一个黑色背景画布,因为要做成动画所以要放到AnimationTimer 的handle方法里面,其余说明已经标好注释了:

完整代码

import javafx.animation.AnimationTimer;
import javafx.application.Application;
import javafx.scene.Group;
import javafx.scene.Scene;
import javafx.scene.canvas.Canvas;
import javafx.scene.canvas.GraphicsContext;
import javafx.scene.paint.Color;
import javafx.stage.Stage;import java.util.Random;public class StarField extends Application {//类变量private static final int WIDTH = 800;private static final int HEIGHT = 600;private static final int STAR_NUMS = 100;private Star[] stars = new Star[STAR_NUMS];private Random random = new Random();public static void main(String[] args) {launch(args);}@Overridepublic void start(Stage primaryStage) throws Exception {Canvas canvas = new Canvas(WIDTH,HEIGHT);GraphicsContext gc = canvas.getGraphicsContext2D();for (int i = 0; i < STAR_NUMS; i++) {stars[i] = new Star(random.nextInt(WIDTH),random.nextInt(HEIGHT),random.nextDouble()*2+1);}AnimationTimer animationTimer = new AnimationTimer() {@Overridepublic void handle(long now) {gc.setFill(Color.BLACK);    //设置画笔颜色gc.fillRect(0,0,WIDTH,HEIGHT);  //填充满整个矩形画布for (Star star : stars){star.update();gc.setFill(Color.WHITE);gc.fillOval(star.getX(),star.getY(),star.getSize(),star.getSize());}}};Group group = new Group(canvas);Scene scene = new Scene(group);primaryStage.setScene(scene);primaryStage.show();animationTimer.start();}private class Star{//对象变量private double x;private double y;private double size;private double speed;public Star(double x,double y,double speed){this.x = x;this.y = y;this.size = random.nextDouble()*5+1;this.speed = speed;}public void update(){x -= speed;     //控制星星向左移动if (x<0){x = WIDTH;  //循环播放,每次出发点的y坐标发生变化y = random.nextInt(HEIGHT);}}public double getX() {return x;}public void setX(double x) {this.x = x;}public double getY() {return y;}public void setY(double y) {this.y = y;}public double getSize() {return size;}public void setSize(double size) {this.size = size;}public double getSpeed() {return speed;}public void setSpeed(double speed) {this.speed = speed;}}
}

http://www.yayakq.cn/news/576071/

相关文章:

  • 合肥网站推广培训如何ps做网站首页
  • 网站建设需要ui吗网站备案 强制
  • 杭州建设银行网站首页重庆集团网站建设
  • 云南省建设厅专家注册网站wordpress给导航加链接
  • 美妆网站模板注册公司网上核名流程
  • 韩国情侣网站模板ui设计软件下载
  • 南昌哪里可以做电商网站网站宽屏背景
  • 做网站一定要域名嘛图片识别搜索引擎
  • jsp网站建设技术案例ajax wordpress地址
  • 寿县移动公司网站建设网站开发算是研发支出吗
  • 保险咨询网站建设在线ps图
  • 安阳县崔家桥职业中专优化网站排名公司
  • 做个模板网站多少钱网站域名注册的相关证书证明文件
  • 做信息采集的网站微信网站平台建设
  • 网站目的百度人工电话
  • 福建人力资源建设网站wordpress怎么看访问
  • 做国际网站的流程外贸网站域名能用cn做后缀吗
  • 创建网站投资多少钱微信小程序模板使用
  • 西安搜建站科技网站手机网站图片 触摸 放大代码 js
  • 营销型网站建设题品牌公司
  • 深圳沙井做网站公司wordpress更好域名
  • 网站程序开发的基本步骤网站建立多少钱
  • 奇缦科技珠海网站建设优化江苏建设人才网站
  • wordpress托管 根目录网站优化怎么做关键词排名
  • 如何让百度收录我的网站四川城乡和住房建设厅网站首页
  • 交互网站开发萧山做网站公司
  • 做众筹网站要什么资质作图神器
  • 长沙市城市建设档案馆网站大良网站建设市场
  • 移动宽带过期了怎么续费淄博seo方案
  • 网站空间搭建网站对于企业的作用