FireMonkey ではよく使う事になる座標計算です。XE3 以降では RTL 扱いなので VCL でも同じコードとなります。
二次元での二点間の距離の求め方はこうなります。
\[ \sqrt[]{(x_2-x_1)^2+(y_2-y_1)^2} \]三次元での二点間の距離の求め方はこうなります。
\[ \sqrt[]{(x_2-x_1)^2+(y_2-y_1)^2+(z_2-z_1)^2} \]「このくらいなら自前で計算した方が早い」 と仰る方もいらっしゃるかもしれませんが。
|
TPoint レコードのフィールド X / Y は Longint 型です。レコードに座標をセットするには Point() 関数を使うのが簡単です (コンストラクタ Create でも値をセットできます)。 TPoint レコードの Distance() メソッドを使えば二点間の距離を求める事ができます。Distance() メソッドの戻り値は Double 型です。
|
TPointF レコードのフィールド X / Y は Single 型です。レコードに座標をセットするには PointF() 関数を使うのが簡単です (コンストラクタ Create でも値をセットできます)。 TPointF レコードの Distance() メソッドを使えば二点間の距離を求める事ができます。Distance() メソッドの戻り値は Single 型です (XE4 以前は Double 型)。
|
TPoint3D レコードのフィールド X / Y / Z は Single 型です。レコードに座標をセットするには Point3D() 関数を使うのが簡単です (コンストラクタ Create でも値をセットできます)。 TPoint3D レコードの Distance() メソッドを使えば二点間の距離を求める事ができます。Distance() メソッドの戻り値は Single 型です。
|
XE2 の TPoint3D には Distance() メソッドがないので自前で計算するしかありません。単なるレコード (構造体) なので、コンストラクタも持っていません。
BACK |