精品课程网站建设 碧辉腾乐,下载官方版微信,广州关键词搜索排名,网站后台要怎么做在JavaFX中#xff0c;您可以使用PathTransition对象为路径上的节点设置动画。 PathTransitions使用Shape对象描述它们需要沿其动画的路径。 JavaFX提供了各种类型的形状#xff08;例如#xff0c;多边形#xff0c;圆形#xff0c;多边形#xff0c;路径#xff09;。… 在JavaFX中您可以使用PathTransition对象为路径上的节点设置动画。 PathTransitions使用Shape对象描述它们需要沿其动画的路径。 JavaFX提供了各种类型的形状例如多边形圆形多边形路径。 路径形状很有趣因为它允许您使用称为PathElement的各种移动来创建复杂的形状。 一些路径元素是ArcToCubicCurveToHLineToLineToMoveToQuadCurveToVLineTo。 他们的名字暗示着他们在做什么。 尽管PathElemetns非常适合描述复杂路径但我发现我宁愿使用数学表达式来描述我的路径。 在数学课上使用图形的所有岁月影响了我的思维方式。 二次和三角表达式使它们具有温暖和舒适的感觉。 因此我试图创建使用数学表达式描述的PathTransitions。 如果有人希望达成相同的目标我会在这篇文章中描述我的解决方案。 为此首先需要解决数学表达式的方法例如x * sinx或x ^ 2/45或x ^ 2/ sinx-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;}} 每个表达式条目都需要一个表达式。 对于水平图表达式的形式必须为fx; gy为垂直 ra代表极坐标。 也就是说水平图需要一个表达式其中唯一变量是字母“ 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