JavaFX 2.1 での線の正確な幅について疑問に思っています。
ポイント (10;10) で開始し、ポイント (20;10) で終了する直線を作成すると、予想される幅は 10px になります。線の幅を読み取ると、11px の値が返されます。添付の例を開始してスクリーンショットを作成すると、より高いズーム レベルで、線の幅が 12px、高さが 2px であることがわかります。
a を使用しLineBuilder
ても違いはありません。私は別のイベントを適用しようとしましたが、StrokeType
成功しませんでした。
一辺の長さが 10 の正方形を作成すると、予想される幅 10px が返されます。
line.getBoundsInLocal().getWidth()
がレンダリング結果 (スクリーンショット) に表示される値と異なる値を返すのはなぜですか?- ラインとポリゴンを作成するとき、幅に違いがあるのはなぜですか?
例:
import javafx.application.Application;
import javafx.scene.Group;
import javafx.scene.Scene;
import javafx.scene.shape.Line;
import javafx.scene.shape.Polygon;
import javafx.stage.Stage;
public class ShapeWidthDemo extends Application {
@Override
public void start(Stage stage) throws Exception {
Group root = new Group();
int startX = 10;
int startY = 10;
int length = 10;
Line line = new Line(startX, startY, startX + length, startY);
System.out.println("line width: " + line.getBoundsInLocal().getWidth());
//->line width: 11.0
System.out.println("line height: " + line.getBoundsInLocal().getHeight());
//->line height: 1.0
root.getChildren().add(line);
int startY2 = startY + 2;
Polygon polygon = new Polygon(
startX, startY2,
startX + 10, startY2,
startX + 10, startY2 + 10,
startX, startY2 + 10);
System.out.println("polygon width: " + polygon.getBoundsInLocal().getWidth());
//->polygon width: 10.0
System.out.println("polygon height: " + polygon.getBoundsInLocal().getHeight());
//->polygon height: 10.0
root.getChildren().add(polygon);
stage.setScene(new Scene(root, 100, 100));
stage.show();
}
public static void main(String[] args) {
launch(args);
}
}