基于javafx的五子棋

在JavaFX中,您可以使用PathTransition对象为路径上的节点设置动画。 PathTransitions使用Shape对象来描述它们需要沿其动画的路径。 JavaFX提供了各种类型的形状(例如,多边形,圆形,多边形,路径)。 路径形状很有趣,因为它允许您使用称为PathElement的各种移动来创建复杂的形状。 一些路径元素是ArcTo,CubicCurveTo,HLineTo,LineTo,MoveTo,QuadCurveTo,VLineTo。 他们的名字暗示着他们在做什么。

尽管PathElemetns非常适合描述复杂路径,但我发现我宁愿使用数学表达式来描述路径。 在数学课上使用图形的所有岁月影响了我的思维方式。 二次和三角表达式给他们温暖而舒适的感觉。 因此,我试图创建使用数学表达式描述的PathTransitions。 如果有人希望达成相同的目标,我会在这篇文章中描述我的解决方案。

为此,首先需要解决数学表达式的方法,例如x * sin(x)或x ^ 2/45或(x ^ 2)/ sin(x-2)或其他可以想像。 为此,我很幸运地偶然发现了Lawrence Dol的Software Monkey网站。 Lawrence创建了一个名为MathEval的超轻量Java类 ,用于评估数学表达式。 该类只有31KB,非常易于使用。 我使用MathEval绘制给定表达式的点。

JavaFx类Polyline用于存储MathEval求解的绘制点,并将其转换为PathTransition可以将其用作输入的Shape对象。

我最终创建的类称为ExpressionTransitionMaker-抱歉,没有Javadoc,但是您可以在此处找到源代码。 该类应该非常易于使用。 它有两个主要方法值得一提。 第一个是:

public void addExpressionEntry(double start, double end, double poll, GraphType type, String expression) throws IllegalArgumentException;

此方法用于添加表达式条目,该表达式条目由具有支持信息的表达式组成,例如图表上的开始和结束位置,轮询间隔和GraphType。 ExpressionTransitionMaker可以制作此GraphType枚举描述的三种不同类型的图:

public enum GraphType {vertical("y"), horizontal("x"), polar("a");private String var;GraphType(String var) {this.var = var;}public String getVar() {return var;}}

每个表达式条目都需要一个表达式。 对于水平图,表达式的形式必须为f(x); g(y)为垂直; r(a)代表极坐标。 也就是说,水平图需要一个表达式,其中唯一变量是字母“ x”,垂直图需要一个表达式,其中唯一变量是字母“ y”,极坐标图需要一个表达式,唯一的变量variable是字母“ a”,其中“ a”表示弧度的角度。 可以添加多个表达式条目。

顾名思义,水平图和垂直图分别用于分别向左和向右和向上和向下移动的图形。 极坐标图适用于沿圆形或螺旋形路径移动的图形。 如果给定负的轮询值以及适当的起点和终点,则这三个方向都可以朝相反的方向发展。

值得一提的第二种方法是:

public SequentialTransition getSequentialTransition();

因为可以将多个表达式添加到ExpressionTransitionMaker中,所以SequentialTransition对象用于播放ExpressionTransitionMaker可以创建的所有PathTransitions。 返回的SequentialTransition填充有多个PathTransition,每个添加的表达式一个。 SequentialTransition将按顺序播放其所有过渡。

就是这样。 ExpressionTransitionMaker中还有一个或两个其他公共方法,用户可能会发现它们很方便,但为简洁起见而被忽略。 我创建了一个简单的小应用程序,用于测试ExpressionTransitionMaker,可以在此处找到。 该应用程序可以在浏览器上播放,它允许您输入多个表达式,这些表达式用于沿屏幕动画图像。

如果您有任何反馈意见希望阅读。

参考: W4G合作伙伴 Jose Martinez的 JavaFX中基于表达式的PathTransitions

翻译自: https://www.javacodegeeks.com/2012/09/expression-based-pathtransitions-in.html

基于javafx的五子棋

基于javafx的五子棋_JavaFX中基于表达式的PathTransitions相关推荐

  1. 基于javafx的五子棋_基于JavaFX的SimpleDateFormat演示程序

    基于javafx的五子棋 对于使用Java Date进行格式化的新手,甚至对于使用Java Date进行格式化的新手,对于有经验的Java开发人员来说,可能都会有些棘手,其中之一就是使用SimpleD ...

  2. 在基于图论的Java程序中基于DSL的输入图数据的方法

    我们大多数人已经编写了一些程序来处理图论算法,例如查找两个顶点之间的最短路径,查找给定图的最小生成树等等. 在这些算法的每一种中,表示图形的编程方式是使用邻接矩阵或邻接表 . 两者都不是定义图形输入的 ...

  3. 基于python渗透测试_Python中基于属性的测试简介

    基于python渗透测试 by Shashi Kumar Raja 由Shashi Kumar Raja Python中基于属性的测试简介 (Intro to property-based testi ...

  4. java基于http协议编程_Java中基于HTTP协议网络编程

    java中为我们的网络支持提供了java.net包,能够使我们以编程的方式来访问Web服务功能,这篇博客,就跟大家分享一下,Java中的网络编程的知识,主要是学习下该java.net包下的API. U ...

  5. 基于Python的五子棋人机对战

    文章目录 人机对战 计算机算法 源码 运行结果 引用 人机对战 在之前的博文基于tkinter的五子棋游戏中使用tkinter做了一个简单的五子棋游戏,只能实现人人对战,后来想着加上人机对战的功能. ...

  6. JavaFX中基于表达式的PathTransitions

    在JavaFX中,您可以使用PathTransition对象为路径上的节点设置动画. PathTransitions使用Shape对象描述它们需要沿其动画的路径. JavaFX提供了各种类型的形状(例 ...

  7. RIA开发权威指南 基于JavaFX(赠品)

    查看书籍详细信息: RIA开发权威指南--基于JavaFX(赠品) 内容简介 JavaFX是一门比较新颖的RIA技术,本书从JavaFX技术特点.开发环境.语法与开发工具入手,通过基础讲解与应用案例, ...

  8. c语言五子棋开题报告,基于VC的五子棋游戏的设计与实现(附答辩记录)

    基于VC的五子棋游戏的设计与实现(附答辩记录)(包含选题审批表,任务书,开题报告,中期检查报告,毕业论文12300字,程序) 摘 要:以计算机技术和网络技术为核心的现代网络技术已在现实生活和生产中得以 ...

  9. java javafx webview_基于JavaFX WebView 的采集开发,了解一下?

    背景 最近想做一个桌面版的客户端,能够加载连接,获取源码等,主要用于快速的获取网站的栏目,便与爬虫该栏目下的最新信息. 相关插件介绍 JavaFX是: •用于创建和交付桌面应用程序的软件平台,以及可以 ...

最新文章

  1. VTK修炼之道6_仔细分析一个复杂程序
  2. iscsi没有可用于使用快速连接登陆的目标_iSCSI的基本架构及操作简介
  3. 反射获取空参数成员方法并运行
  4. type const mysql_Mysql Explain之type详解
  5. 反复出现的PSW木马, 附日志,请高手指点
  6. 从零开始编写深度学习库(五)Eigen Tensor学习笔记2.0
  7. 经典分享:一份高达555页的技术PPT会是什么样子?
  8. PHP 生成csv的遇到的分隔符问题
  9. linux查看文件写进程,Linux下如何知道文件被那个进程写
  10. 数论-某寒假训练赛 Round1 (Feb, 2018)
  11. 过滤内网IP—IPv4
  12. 浅谈GRADS气象绘图软件的使用
  13. matlab里调节触发角度,电机与拖动基础及MATLAB仿真陈亚爱第4章直流电机.ppt
  14. 自用PHP版H5微信公众号吸粉引流的恶搞小游戏 当天收获500+粉丝
  15. Python sklearn针对不同人群的差异化保险费用定价方案
  16. 求职经历--慎重的第二份工作
  17. 了解如何在Windows中安全删除文件
  18. 怎么把小米手机通讯录导入苹果手机
  19. icloud验证失败连接服务器时出现问题,登录 iCloud 提示验证失败连接到服务器时出现问题怎么办及苹果iPhone手机安装两个微信教程...
  20. matlab 复数函数拟合,lsqcurvefit拟合结果为复数

热门文章

  1. 推荐系统常用的推荐算法
  2. java8 hash算法
  3. C#的foreach
  4. ​凌云KTV点歌系统功能简介
  5. frameset和frame
  6. 把一个不等于0的数最右侧的1提取出来
  7. 2020蓝桥杯省赛---java---B---7(单词分析)
  8. 2015蓝桥杯省赛---java---C---6(奇妙的数字)
  9. JDK8的日期时间类1
  10. rails jquery_Spring与Rails的jQuery UJS