0

一部のスプライトアプリケーション(つまり、pulpcore)では、オブジェクトのアンカーポイントを定義できます。

たとえば、長方形のアンカーポイントがであり、その0,0座標がである場合x:0,y:0、長方形の左上のポイントは画面の左上のポイントに表示されます。

ただし、長方形のアンカーポイントがで、その50,50サイズが100x100である場合、長方形の中央がに配置され0,0、右下の部分のみが表示されます。

JavaFXにも同様のプロパティがありますか?xこれを実装する簡単な方法はありますか(JavaFXノードの座標と座標を独自の高さと幅にバインドできますyか?)

x,y座標をバインドするboundsInLocal/Parent.widthと、ランタイム例外が発生します。

4

1 に答える 1

2

あなたが言うように、長方形の原点は左上です。ノードの配置には 2 つのオプションがあります。layoutX と layoutY のいずれかを使用できます。var rect = Rectangle { layoutX: 50 layoutY: 50 width: 100 height: 100 }

または translateX と translateY

var rect = Rectangle { translateX: 50 translateY: 50 widht: 100 height: 100 } layoutX/Y と translateX/Y の両方を使用する主な目的は、translateX/Y が変更可能であることを意図しているのに対し、layoutX/Y は初期化を意図していることです。ポジショニング。たとえば、元の位置が layoutX/Y に記憶されている間に、アニメーションで translateX/Y を変更できます。最終的な位置は常に、layoutX+ translateX および layoutY + translateY になります。

原点を中心点 (50,50) に移動するには、負の変換を使用します。var rect = Rectangle { translateX: -50 translateY: -50 width: 100 height: 100 }

一部の形状は、左上の原点に基づいていません。たとえば、Circle は centerX と centerY を使用します。

于 2009-08-25T15:15:30.987 に答える