在JavaFX 2.2中,除了將它們添加到Node
之外,似乎對Transform
對象不能做太多的工作。特別是,沒有代數運算,因此您可以與另一個進行一個轉換。JavaFX中是否有等價的AffineTransform.createTransformedShape(Shape)?
我想原因是大部分的計算都應該由GPU直接完成,所以不要讓人們試圖以編程的方式來完成它,以防止一些放緩。
但有時你確實想知道應用轉換的最終結果是什麼。具體來說,java.awt.geom.AffineTransform
有這個不錯的方法createTransformedShape
,將java.awt.Shape
變成給定轉換下的等效形狀。我在JavaFX中找不到任何相同的東西,我想不出一種解決方法。
我錯過了什麼或有沒有人有一個聰明的主意,不涉及重新實施Shape
類?
在AWT中,諸如'Arc2D','Ellipse2D','Rectangle2D'等等都實現了'Shape',這確保它們由'Path'段組成。你可以在裏面偷看,看看他們是什麼樣的路徑以及他們開始的座標。看來JavaFX不允許這樣做,所以如果你想要,例如計算相當於幾何形狀的'Path',你必須自己做。我的意思是,甚至沒有'Polygon'和'Polyline'在JavaFX中擴展'Path'。我必須猜測這是爲了OpenGL的好處,但它有點煩人。 – TOB