-1
我試圖實現一個自定義的上下文菜單,該菜單項將出現在節點周圍,思路如下,在目標節點周圍繪製一個虛擬圓,並計算圓的周長,第一個菜單項將在目標節點的頂部,其餘的將在每個菜單項之間以相等的距離分配,,,,我沒有寫任何代碼行,因爲我不知道如何啓動至少,,, PLZ的幫助?JavaFX顯示節點周圍的選項
也許這個形象將更好地解釋
我試圖實現一個自定義的上下文菜單,該菜單項將出現在節點周圍,思路如下,在目標節點周圍繪製一個虛擬圓,並計算圓的周長,第一個菜單項將在目標節點的頂部,其餘的將在每個菜單項之間以相等的距離分配,,,,我沒有寫任何代碼行,因爲我不知道如何啓動至少,,, PLZ的幫助?JavaFX顯示節點周圍的選項
也許這個形象將更好地解釋
萬一有人有興趣,我manged做到這一點,但代碼是有點兒髒:
import javafx.scene.control.Button;
import javafx.scene.layout.StackPane;
import javafx.scene.shape.Circle;
import lombok.AccessLevel;
import lombok.NoArgsConstructor;
/**
* @author Asendar
*
*/
@NoArgsConstructor(access = AccessLevel.PRIVATE)
public final class RadialMenuFactory {
public static final RadialMenuFactory instance = new RadialMenuFactory();
public StackPane construct(int itemsCount, int radius) {
StackPane pane = new StackPane();
double pheta = 270;
int counter = 0;
while (counter != itemsCount) {
double x = radius * Math.cos(Math.toRadians(pheta));
double y = radius * Math.sin(Math.toRadians(pheta));
Button btn = new Button("btn");
btn.setTranslateX(x);
btn.setTranslateY(y);
pane.getChildren().addAll(btn);
pheta += 360/itemsCount;
pheta %= 360;
counter++;
}
pane.setMinHeight(300);
pane.setMinWidth(300);
return pane;
}
}
[谷歌JavaFX的徑向菜單] (https://www.google.com/?q=javafx+radial+menu&gws_rd=ssl#) – jewelsea
所以你有[極座標,想轉換爲笛卡爾座標?](https://en.wikipedia。 org/wiki/Polar_coordinate_system#Converting_between_polar_and_Cartesian_coordinates) – fabian
@fabian我想我現在就可以開始編碼,,, http://www.ajdesigner.com/phpcircle/circle_arc_length_theta.php –