导航:首页 > 编程语言 > javafx正弦函数

javafx正弦函数

发布时间:2023-02-27 21:36:28

1. java如何让多个图片都按照一定轨迹下落

图片的位移(下落),可以通过修改图片的x,y坐标来实现, 在Swing/Html中,我们可以使用Timer定时(比如每隔100毫秒)去修改图片的x,y坐标即可实现,

多个图片都按照一定的轨迹移动,那都按照自己的轨迹的算法,去定时修改x,y坐标即可.

JavaFX是java先进的图形界面框架, 里面有3D和各种动画, 所以按照轨迹移动,都能轻松实现

importjavafx.animation.Animation;
importjavafx.animation.Interpolator;
importjavafx.animation.PathTransition;
importjavafx.animation.RotateTransition;
importjavafx.application.Application;
importjavafx.geometry.Insets;
importjavafx.scene.Group;
importjavafx.scene.Scene;
importjavafx.scene.control.Button;
importjavafx.scene.image.ImageView;
importjavafx.scene.layout.HBox;
importjavafx.scene.shape.MoveTo;
importjavafx.scene.shape.Path;
importjavafx.scene.shape.QuadCurveTo;
importjavafx.stage.Stage;
importjavafx.util.Duration;

{
publicstaticvoidmain(String[]args){
launch(args);
}

@Override
publicvoidstart(StageprimaryStage)throwsException{
ImageViewimv=newImageView(getClass().getResource("ball.png").toExternalForm());
Pathpath=newPath();//路径;运动轨迹
MoveTomt=newMoveTo(20,50);
QuadCurveToquadTo2=newQuadCurveTo(175,190,350,30);
path.getElements().addAll(mt,quadTo2);

HBoxhbox=newHBox(10);

ButtonbtnStart=newButton("开始");
ButtonbtnPause=newButton("暂停");
ButtonbtnResume=newButton("继续");
ButtonbtnStop=newButton("结束");
hbox.getChildren().addAll(btnStart,btnPause,btnResume,btnStop);
hbox.setPadding(newInsets(20));
hbox.setLayoutX(80);
hbox.setLayoutY(230);
Grouproot=newGroup();

root.getChildren().addAll(imv,path,hbox);//不添加path.就可以不显示path了

Scenescene=newScene(root,430,300);

primaryStage.setTitle("JavaFX");
primaryStage.setScene(scene);
primaryStage.show();
//旋转动画设置
RotateTransitionrt=newRotateTransition(Duration.millis(1000),imv);
rt.setInterpolator(Interpolator.LINEAR);
rt.setFromAngle(0);
rt.setToAngle(360);
rt.setCycleCount(Animation.INDEFINITE);
rt.play();


//路径动画设置
PathTransitionpt=newPathTransition(Duration.millis(800),path,imv);//路径动画
pt.setCycleCount(Animation.INDEFINITE);
pt.setAutoReverse(true);
btnStart.setOnAction(e->{
pt.playFromStart();//从头开始播放

});

//----按钮的响应设置---
btnPause.setOnAction(e->{
pt.pause();
});
btnResume.setOnAction(e->{
pt.play();//播放
});
btnStop.setOnAction(e->{
pt.jumpTo(newDuration(0));//跳到第0秒处
pt.stop();
});
}
}

2. javafx mediaview 有声音没图像

主要问题: 和你上一个问题 "javafx图片显示不出来" 其实是同一类型的错误.

因为你通过代码FXMLLoader.load(...fxml)加载了界面,已经实例化了组件,

就不需要你手动去new XxxView出来了. 你可以在new MediaView之前,试试下面这行代码

System.out.println(mv==null);//结果是false,代表mv已经实例化了

如果你去new了 , 那么mv就是新的MediaView,. 而并不是程序界面上的MediaView.

所以没有画面. 但是有声音, 并且声音没有通过鼠标点击,就自动出来了. 因为你把代码写到了初始化方法里initialize .

解决办剪切 initialize 方法里的代码. 然后粘贴到新的jj方法里

	@Override
publicvoidinitialize(URLlocation,ResourceBundleresources){//初始化,在这个程序里不需要写代码


}

publicvoidjj(){//onMouseClicked="#jj"mv点击鼠标后,绑定的方法是jj,所以在这里进行播放工作
Stringmv_URL=getClass().getResource("你的视频.mp4").toString();
System.out.println(mv_URL);
Mediah=newMedia(mv_URL);
MediaPlayermp=newMediaPlayer(h);
//mv=newMediaView();//删除此行代码
mv.setMediaPlayer(mp);
mp.play();
}

效果图

3. java编程JavaFX

JavaFX脚本是一种声明式、静态类型编程语言。它具有一等函数(first-class functions)、声明式的语法、列表推导回(list-comprehensions)及基于依赖关系答的增量式求值(incremental dependency-based evaluation)等特征。
JavaFX脚本为多种多样的操作提供了声明式、无中间程序逻辑的语法,这些操作包括创建2D动画、设置属性或者声明在模式和视图对象之间的绑定依赖关系。

4. 如何用javaFX画正弦曲线

写一个类继承JFrame
private final int WIDTH = 900, HEIGHT = 450;//窗口默认的宽度、高度
private final int offsetX=15;//原点的距离窗口左边空白
private final int offsetY=5; //原点的距离窗口顶边空白
private final int stepX=200; //横向步进
private final int stepY=200; //纵向步进
private final Color colBack = Color.white; //背景颜色
private final Color colText = Color.blue; //文字标签颜色
private final Color colCros = Color.DARK_GRAY; //轴颜色
private final Color colLine = Color.red; //线颜色

private JRadioButton rdSin=new JRadioButton("Sin");
private JRadioButton rdCos=new JRadioButton("Cos");
private JButton btnDraws = new JButton("画线");
private JButton btnClear = new JButton("清空");
private boolean bDraw = false;

public void paint(Graphics g){
super.paint(g); //让父类先处理
int w=getWidth(); //窗口的宽度
int h=getHeight();//窗口的高度

g.setColor(colBack); //底色用白色
g.fillRect(0, 0, w, h); //填充整个窗口
rdSin.repaint();
rdCos.repaint();
btnDraws.repaint();
btnClear.repaint();
if(!bDraw){
return ;
}

int mid_y=(h-offsetY)/2+10;//半高
g.setFont(g.getFont().deriveFont(10f));//字体大小
g.setColor(colCros); //横线和竖线,用深灰色
g.drawLine(0, offsetY+mid_y, w, mid_y+offsetY); //横线中线
g.drawLine(offsetX, offsetY, offsetX, h); //竖线中线

g.setColor(colText); //刻度用蓝色
int maxX=(int)Math.round( (w-offsetX) / stepX);//计算一下横向最大刻度
for(int i=0;i<=maxX;i++){
g.drawLine(offsetX+stepX*i, offsetY+mid_y-5, offsetX+stepX*i, offsetY+mid_y+5);//横线刻度,90步进,方便后面画线的计算
g.drawString(String.valueOf(90*i), offsetX+stepX*i-5, offsetY+mid_y+10+5); //刻度是90度
}

int maxY=(int)Math.round( mid_y / stepY);//计算一下纵向最大刻度
for(int i=1;i<=maxY;i++){
g.drawLine(offsetX-5, offsetY+mid_y-stepY*i, offsetX+5, offsetY+mid_y-stepY*i);//竖线正刻度,100步进
g.drawString(String.valueOf(stepY*i), offsetX+10, offsetY+mid_y-stepY*i+5);

g.drawLine(offsetX-5, offsetY+mid_y+stepY*i, offsetX+5, offsetY+mid_y+stepY*i);//竖线负刻度,100步进
g.drawString(String.valueOf(-stepY*i), offsetX+10, offsetY+mid_y+stepY*i+5);
}

g.setColor(colLine); //曲线用红色
int x1, y1, x_=-1,y_=0;
for(int i=0; i<=w; i++){ //从0度到窗口宽度,开始画Sin()点
x1=((Double)(offsetX+i/90.0*stepX) ).intValue();
if(rdSin.isSelected()){
y1=offsetY+((Double)( mid_y+stepY*Math.sin( Math.toRadians(i) )) ).intValue();
}else{
y1=offsetY+((Double)( mid_y+stepY*Math.cos( Math.toRadians(i) )) ).intValue();
}
if(x_==-1){
x_=x1;y_=y1;
}
g.drawLine(x_, y_, x1, y1);
x_=x1;y_=y1;
}
}

public SinCos(){
super("测试Graphics+Sin/Cos");
this.setSize(WIDTH, HEIGHT);
this.setLayout(null);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

ButtonGroup group = new ButtonGroup();
group.add(rdSin);
group.add(rdCos);
this.getContentPane().add(rdSin);
this.getContentPane().add(rdCos);
this.getContentPane().add(btnDraws);
this.getContentPane().add(btnClear);
this.setVisible(true);
this.doLayout();
btnDraws.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
bDraw=true; SinCos.this.repaint();
}
});
btnClear.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
bDraw=false;SinCos.this.repaint();
}
});
rdSin.setSelected(true);
}
public void doLayout(){
super.doLayout();
rdSin.setBounds(10, 15, 50, 20);
rdCos.setBounds(rdSin.getX()+rdSin.getWidth()+5, 15, 50, 20);
btnDraws.setBounds(rdCos.getX()+rdCos.getWidth()+5, 12, 70, 25);
btnClear.setBounds(btnDraws.getX()+btnDraws.getWidth()+3, 12, 70, 25);
}

public static void main(String[] args){
EventQueue.invokeLater(new Runnable() {
public void run() {
new SinCos();
}
});
}
画正弦余弦的方法

5. 如何将JavaFX程序打包成exe

一、使用javafxpackager
javafxpackager是javafx提供的打包工具,好像从jdk1.7开始就包含这个工具了,它在 jdk 的 bin 目录下。

第一步:新建两个文件
一个放入你想打包的jar,另一个用来存放打包生成的exe,注意所有目录、jar、exe名字都不要带空格。
第二步:开始打包
在 jdk 的 bin 目录下运行cmd,输入javafxpackager,可以看到可用的参数,如下图

我们使用deploy命令,大部分参数一般都是用不到的
我们可以使用下面的参数简单打包
javafxpackager -deploy -native image -appclass test.Test -srcdir E://test1 -outdir E://test2 -outfile test -name testName
要按实际情况修改的,-appclass是包含main函数的类,要写出包名。

成功以后出现这样的提示

在test2目录下会出现这些文件,bundles文件夹里就是已经打包好的exe文件了

6. 最新版IntelliJ IDEA旗舰版 + JDK10最新版,创建javafx项目后很多javafx的包不能导入。

(1)准备工作

1) 安装JDK 6或者JDK 7

2) 安装scala 2.10.x (注意版本)

2)下载Intellij IDEA最新版(本文以IntelliJ IDEA Community Edition 13.1.1为例说明,不同版本,界面布局可能不同)

3)将下载的Intellij IDEA解压后,安装scala插件,流程如下:

依次选择“Configure”–> “Plugins”–> “Browse repositories”,输入scala,然后安装即可

(2)搭建Spark源码阅读环境(需要联网)

一种方法是直接依次选择“import project”–> 选择spark所在目录 –>
“SBT”,之后intellij会自动识别SBT文件,并下载依赖的外部jar包,整个流程用时非常长,取决于机器的网络环境(不建议在windows
下操作,可能遇到各种问题),一般需花费几十分钟到几个小时。注意,下载过程会用到git,因此应该事先安装了git。

第二种方法是首先在linux操作系统上生成intellij项目文件,然后在intellij IDEA中直接通过“Open
Project”打开项目即可。在linux上生成intellij项目文件的方法(需要安装git,不需要安装scala,sbt会自动下载)是:在
spark源代码根目录下,输入sbt/sbt gen-idea

注:如果你在windows下阅读源代码,建议先在linux下生成项目文件,然后导入到windows中的intellij IDEA中。

(3)搭建Spark开发环境

在intellij IDEA中创建scala project,并依次选择“File”–> “project structure”
–> “Libraries”,选择“+”,将spark-hadoop
对应的包导入,比如导入spark-assembly_2.10-0.9.0-incubating-hadoop2.2.0.jar(只需导入该jar
包,其他不需要),如果IDE没有识别scala 库,则需要以同样方式将scala库导入。之后开发scala程序即可:

编写完scala程序后,可以直接在intellij中,以local模式运行,方法如下:

点击“Run”–> “Run Configurations”,在弹出的框中对应栏中填写“local”,表示将该参数传递给main函数,如下图所示,之后点击“Run”–> “Run”运行程序即可。

如果想把程序打成jar包,通过命令行的形式运行在spark 集群中,可以按照以下步骤操作:

依次选择“File”–> “Project Structure” –> “Artifact”,选择“+”–>
“Jar” –> “From Moles with
dependencies”,选择main函数,并在弹出框中选择输出jar位置,并选择“OK”。

最后依次选择“Build”–> “Build Artifact”编译生成jar包。

7. 用java或者c程序输出如下图的这种简单心形,谁能给我讲讲思路。加上程序示例更好

用方程的话肯定输出不会和你的图完全一致

心形线方程如图

阅读全文

与javafx正弦函数相关的资料

热点内容
压缩好的文件哪里找 浏览:831
百度网盘怎样上传文件夹 浏览:320
java发展是 浏览:892
程序编程结束还要做什么 浏览:778
pcb打版文件有哪些 浏览:39
网络原来ip地址忘记了怎么办 浏览:142
iphone6s微信密码设置 浏览:810
java将数字转换成字母 浏览:854
c盘中的哪些是系统文件夹 浏览:668
分布式服务如何跨库统计数据 浏览:829
力控转发数据客户端模式如何建立 浏览:200
怎么样让自己的网站不被别人看到 浏览:711
编程扩展效果如何 浏览:335
荣耀畅玩手环同步qq 浏览:475
怎么向sql中添加数据库 浏览:596
录歌失败重启app什么意思 浏览:522
压缩文件包怎么在微信发送 浏览:432
mysql数据库怎么插入时间值 浏览:191
微信视频不能转发朋友圈 浏览:596
影视后期的app有哪些 浏览:956

友情链接