![](/img/trans.png)
[英]How to draw a polygon with javafx, with a multidimensional array as parameter
[英]How locate Polygon in javaFX
我嘗試在javafx中設計一個自定義按鈕,但是在定位多邊形時遇到了一些問題:
public class PlayButton extends Group{
public static final int PLAY = 0, PAUSE = 1;
private int state = PAUSE;
private Circle background;
private Polygon triangle;
public PlayButton(){
background = new Circle(20);
background.setStroke(MyApp.FIRST_COLOR);
background.setStrokeWidth(2);
background.setEffect(MyApp.DROP_SHADOW);
background.setCursor(Cursor.HAND);
background.setFill(MyApp.SECOND_COLOR_OPAQUE);
this.getChildren().add(background);
triangle = new Polygon();
triangle.getPoints().addAll(new Double[]{10.0, 10.0, 40.0, 25.0, 10.0, 40.0});
triangle.setFill(MyApp.FIRST_COLOR);
this.getChildren().add(triangle);
}
public void setState(int state){
this.state = state;
}
}
我的多邊形不在背景中,但我不明白為什么:
矩形是一個進度條,他沒問題。
謝謝您的幫助
您正在使用三角形的絕對坐標,但如果希望它們始終重疊,則可能應該使用相對於圓的坐標。 為了得到圓的包圍矩形的左上角,我要做的是:
float[] backgroundTopLeft = new float[] {
background.getCenterX() - background.getRadius(),
background.getCenterY() - background.getRadius()};
然后相對於該坐標繪制三角形作為三角形的左上角。
經過一些測試,我認為多邊形的點的位置是從我組的中心計算出來的,背景中我的圓的半徑是20,然后坐標從-20開始並在20結束,那么好的坐標是:
triangle.getPoints().addAll(new Double[]{-5.0, -10.0, 12.0, 0.0, -5.0, 10.0});
然后看起來像這樣:
有人可以告訴我我是對還是錯?
否則我希望這可以對某人有所幫助。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.