2

new線分から外挿して線上の点Aを見つけようとしていますが、「戻る」方法の 3 分の 1、つまり point を見つけようとしていBます。

ここに画像の説明を入力

与えられた線を補間して、線に沿った特定のパーセンテージで位置を取得できます。

=# select st_line_interpolate_point(
   st_makeline('0101000020E6100000300DC347C49418C03EE8D9ACFAA44A40', 
               '0101000020E6100000FB743C66A03218C0CDCCCCCCCC7C4A40'), 
   0.333);
0101000020E6100000ED45B41D537718C069C6A2E9EC984A40

反対方向のラインに沿った点を見つけるために負の数を入力しようとしましたが、補間引数が [0, 1] の範囲内にある必要があるため失敗します。

最初に線をスケーリングすることを考えましたが、それは線の中心を原点として使用しないため、私の目的には役に立ちません。

4

1 に答える 1

3

それを解決しました:

F = 1.3333
st_affine(A, F, 0, 
             0, F, 
            (F-1)*-st_x(st_line_interpolate_point(st_makeline(A, B), 0.5)), 
            (F-1)*-st_y(st_line_interpolate_point(st_makeline(A, B), 0.5))
          )

説明:

(2-d) 始点を 1.3333 の係数でスケーリングし、線分の中点をスケーリングの原点として使用します。

方眼紙を出せ!

http://en.wikipedia.org/wiki/Affine_transformation

于 2012-09-08T10:54:13.890 に答える