簡體   English   中英

如何在javaFX中定位Polygon

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM