日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > java >内容正文

java

JavaFX中基于表达式的PathTransitions

發布時間:2023/12/3 java 44 豆豆
生活随笔 收集整理的這篇文章主要介紹了 JavaFX中基于表达式的PathTransitions 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
在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的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。