在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可以创建的所有PathTransition。 返回的SequentialTransition填充有多个PathTransition,每个添加的表达式一个。 SequentialTransition将按顺序播放其所有过渡。

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

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

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

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

JavaFX中基于表达式的PathTransitions相关推荐

  1. 基于javafx的五子棋_JavaFX中基于表达式的PathTransitions

    基于javafx的五子棋 在JavaFX中,您可以使用PathTransition对象为路径上的节点设置动画. PathTransitions使用Shape对象来描述它们需要沿其动画的路径. Java ...

  2. 有关C/C++中,表达式计算顺序的问题,以及表达式内部变量“副作用”问题(转)...

    经常可以在一些讨论组里看到下面的提问:"谁知道下面C语句给n赋什么值?" m = 1; n = m+++m++; 最近有位不相识的朋友发email给我,问为什么在某个C++系统里, ...

  3. ADO.NET 中的表达式

    发布日期: 1/11/2005 | 更新日期: 1/11/2005 John Papa 利用 ADO.NET,使得数据库中关系的管理更为容易.您可以向数据存储返回一系列行集合并在 DataSet 内将 ...

  4. C/C++ 语言中的表达式求值

    转载地址:http://www.cnblogs.com/heyonggang/p/3340301.html 在此,首先向裘老师致敬! 裘宗燕:C/C++ 语言中的表达式求值 经常可以在一些讨论组里看到 ...

  5. 方法级权限控制-基于表达式操作

    Spring Security允许我们在定义URL访问或方法访问所应有的权限时使用Spring EL表达式,在定义所需的访问权限时如果对应的表达式返回结果为true则表示拥有对应的权限,反之则无.Sp ...

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

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

  7. C#中的表达式和运算符

    欢迎您成为我的读者,希望这篇文章能给你一些帮助. 前言 今天和大家一起学习下C#中的表达式和运算符,都是很基础的知识点. 在日常的编码过程中,对于表达式和运算符我们每天都在使用.比如像下面的代码 in ...

  8. JavaFX官方教程(五)之在JavaFX中创建表单

    翻译自  在JavaFX中创建表单 在开发应用程序时,创建表单是一项常见活动.本教程将向您介绍屏幕布局的基础知识,如何将控件添加到布局窗格以及如何创建输入事件. 在本教程中,您将使用JavaFX构建如 ...

  9. ssrs 基于表达式显示_基于表达式的访问控制

    ssrs 基于表达式显示 1.概述 今天,我们将回顾基于表达式的访问控制(EBAC),基于角色的访问控制(RBAC)和基于属性的访问控制(ABAC)之间的区别,并将重点放在EBAC上. 2.什么是基于 ...

最新文章

  1. 《中国人工智能学会通讯》——3.15 社交媒体中的谣言识别研究及其发展趋势...
  2. 用7ch中断例程完成jmp near ptr s指令的功能,用bx向中断例程传送转移位移。
  3. #HTTP协议学习# (八)拓展-HTTPS协议
  4. maven依赖错误排查经验
  5. reddit_我在3天内疯狂地审查了Reddit上的50个投资组合,从中学到了什么。
  6. 什么叫缺位_一位父亲能够给予孩子的最好礼物是什么?看看这部电影给出的答案...
  7. Maximum Mode
  8. 论文笔记_CV_AD_A Survey of Computer Vision Research for Automotive Systems
  9. LINUX编译mate-desktop/pluma-1.26.0文本编辑器
  10. 如何记才能不搞混绝对路径和相对路径
  11. pcm5102a解码芯片音质评测_鱼和熊掌兼得——一台可以换芯片的PCM1794解码评测(上)...
  12. 诺基亚 PC Internet 访问 N70为例
  13. 激光能类毕业论文文献都有哪些?
  14. 2016美国计算机研究生,2016年美国计算机工程专业研究生排名(转载)
  15. 高职高考数学可以用计算机吗,将高职高考数学成绩从39分提到120分,3个月时间可能吗?...
  16. Kjava林林工具箱源代码(jbuilder工程)
  17. python怎么实现直播_Python实现直播推流效果
  18. U盘pe(理论大白菜、优启通、微PE都可以) 装ESXI方案 (非通用UltraISO重做启动U盘),省U盘
  19. 证监计算机类专业知识,2020国考中国证监会计算机类专业考什么?
  20. 知乎上对 国内机器视觉行业的发展的 讨论-经典

热门文章

  1. (转)漫画:什么是分布式事务?
  2. flutter调用api_如何在Flutter(REST API)中进行API调用
  3. openshift_OpenShift Origin中的Kubernetes Spark运算符(第1部分)
  4. 构建器设计模式_创新设计模式:构建器模式
  5. ibm liberty_使用Eclipse和Open Liberty的Java EE 8上的Java 9
  6. 参数化测试 junit_JUnit 5 –参数化测试
  7. jvm 架构_不可变的基础架构,热部署和JVM
  8. web ua检测_UA Web挑战会议:针对初创公司的SpringIO
  9. Kogito人机规则-第1部分:进一步解决流口水
  10. Java ArrayDeque