2

我正在尝试从线段推断以找到在线上的一个点,但是“返回”的第三个点,即尝试找到 point new,给定点AB以下:

在此处输入图像描述

给定一条线,我可以对其进行插值以获得沿它的任何特定百分比的位置:

=# 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 回答