JavaFX中基于表达式的PathTransitions
尽管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相关推荐
- 基于javafx的五子棋_JavaFX中基于表达式的PathTransitions
基于javafx的五子棋 在JavaFX中,您可以使用PathTransition对象为路径上的节点设置动画. PathTransitions使用Shape对象来描述它们需要沿其动画的路径. Java ...
- 有关C/C++中,表达式计算顺序的问题,以及表达式内部变量“副作用”问题(转)...
经常可以在一些讨论组里看到下面的提问:"谁知道下面C语句给n赋什么值?" m = 1; n = m+++m++; 最近有位不相识的朋友发email给我,问为什么在某个C++系统里, ...
- ADO.NET 中的表达式
发布日期: 1/11/2005 | 更新日期: 1/11/2005 John Papa 利用 ADO.NET,使得数据库中关系的管理更为容易.您可以向数据存储返回一系列行集合并在 DataSet 内将 ...
- C/C++ 语言中的表达式求值
转载地址:http://www.cnblogs.com/heyonggang/p/3340301.html 在此,首先向裘老师致敬! 裘宗燕:C/C++ 语言中的表达式求值 经常可以在一些讨论组里看到 ...
- 方法级权限控制-基于表达式操作
Spring Security允许我们在定义URL访问或方法访问所应有的权限时使用Spring EL表达式,在定义所需的访问权限时如果对应的表达式返回结果为true则表示拥有对应的权限,反之则无.Sp ...
- java javafx webview_基于JavaFX WebView 的采集开发,了解一下?
背景 最近想做一个桌面版的客户端,能够加载连接,获取源码等,主要用于快速的获取网站的栏目,便与爬虫该栏目下的最新信息. 相关插件介绍 JavaFX是: •用于创建和交付桌面应用程序的软件平台,以及可以 ...
- C#中的表达式和运算符
欢迎您成为我的读者,希望这篇文章能给你一些帮助. 前言 今天和大家一起学习下C#中的表达式和运算符,都是很基础的知识点. 在日常的编码过程中,对于表达式和运算符我们每天都在使用.比如像下面的代码 in ...
- JavaFX官方教程(五)之在JavaFX中创建表单
翻译自 在JavaFX中创建表单 在开发应用程序时,创建表单是一项常见活动.本教程将向您介绍屏幕布局的基础知识,如何将控件添加到布局窗格以及如何创建输入事件. 在本教程中,您将使用JavaFX构建如 ...
- ssrs 基于表达式显示_基于表达式的访问控制
ssrs 基于表达式显示 1.概述 今天,我们将回顾基于表达式的访问控制(EBAC),基于角色的访问控制(RBAC)和基于属性的访问控制(ABAC)之间的区别,并将重点放在EBAC上. 2.什么是基于 ...
最新文章
- 《中国人工智能学会通讯》——3.15 社交媒体中的谣言识别研究及其发展趋势...
- 用7ch中断例程完成jmp near ptr s指令的功能,用bx向中断例程传送转移位移。
- #HTTP协议学习# (八)拓展-HTTPS协议
- maven依赖错误排查经验
- reddit_我在3天内疯狂地审查了Reddit上的50个投资组合,从中学到了什么。
- 什么叫缺位_一位父亲能够给予孩子的最好礼物是什么?看看这部电影给出的答案...
- Maximum Mode
- 论文笔记_CV_AD_A Survey of Computer Vision Research for Automotive Systems
- LINUX编译mate-desktop/pluma-1.26.0文本编辑器
- 如何记才能不搞混绝对路径和相对路径
- pcm5102a解码芯片音质评测_鱼和熊掌兼得——一台可以换芯片的PCM1794解码评测(上)...
- 诺基亚 PC Internet 访问 N70为例
- 激光能类毕业论文文献都有哪些?
- 2016美国计算机研究生,2016年美国计算机工程专业研究生排名(转载)
- 高职高考数学可以用计算机吗,将高职高考数学成绩从39分提到120分,3个月时间可能吗?...
- Kjava林林工具箱源代码(jbuilder工程)
- python怎么实现直播_Python实现直播推流效果
- U盘pe(理论大白菜、优启通、微PE都可以) 装ESXI方案 (非通用UltraISO重做启动U盘),省U盘
- 证监计算机类专业知识,2020国考中国证监会计算机类专业考什么?
- 知乎上对 国内机器视觉行业的发展的 讨论-经典
热门文章
- (转)漫画:什么是分布式事务?
- flutter调用api_如何在Flutter(REST API)中进行API调用
- openshift_OpenShift Origin中的Kubernetes Spark运算符(第1部分)
- 构建器设计模式_创新设计模式:构建器模式
- ibm liberty_使用Eclipse和Open Liberty的Java EE 8上的Java 9
- 参数化测试 junit_JUnit 5 –参数化测试
- jvm 架构_不可变的基础架构,热部署和JVM
- web ua检测_UA Web挑战会议:针对初创公司的SpringIO
- Kogito人机规则-第1部分:进一步解决流口水
- Java ArrayDeque