ytianxia 发表于 2022-11-16 09:30:06

把原线段 (1,1) (2,2) 变换到 (3,3) (4,4) ,需要一个平移向量 (3-1, 3-1) ,
同理,不考虑移动线段,那把坐标原点(0,0)反向平移就可以达到相同的效果。所以是 -(2,2) 即 (-2, -2)。

前提是平移可以达到效果。如果仅平移做不到,那就需要比如旋转、缩放了。

(p1, p2) 为源线段, (p3,p4) 为目标线段, 先平移 p1到p3 ,得到向量 v = p3 - p1 。得到临时线段 (p3, p2')。
计算 (p3, p2') 绕 p3 旋转到 (p3, p4) 的旋转角度 r,得到一个旋转矩阵 (p3, r)。得到线段 (p3, p2'')。此时 (p3, p2'') 与 (p3, p4) 部分重合。
计算 (p3, p2'') 基于p3 进行缩放的比例,才能让p2'' 与 p4重合。得到比例 s。
然后 ucs变量都有了。
将原点基于 p3 进行缩放比例为(-s) 的缩放, 旋转角度为 -r 的旋转,再施加一个 -v 的平移,就找到ucs原点了。
同理,将向量 (1, 0) 进行-s缩放、-r旋转变换,可以得到新的 x轴变量x'。
将向量(0,1) 进行 -s, -r 缩放、旋转,可以得到y轴变量y'。

wanchr 发表于 2022-11-16 21:02:54

ytianxia,你教的真认真,谢谢你,

wanchr 发表于 2022-11-16 21:33:58

己知(x1,y1)(x2,y2)对应(a1,b1)(a2,b2),四个坐标,我下面抄来的公式是什么意思呢?

wanchr 发表于 2022-11-16 21:36:26

atan2b2-b1,a2-a1)*180/pI()

wanchr 发表于 2022-11-16 21:38:57

a1-x1*cos(角*pi()/180)+y1*sin(角*pi()/180)

wanchr 发表于 2022-11-16 21:41:35

b1-y1*cos(角*pi()/180)-x1*(sin(角*pi()/180))

wanchr 发表于 2022-11-16 21:44:05

上面算出来的一对坐标是什么东西,怎么用到ucs里,谢谢指导一下
页: 1 [2]
查看完整版本: 问下不移动线段,改变坐标系能做到吗