guosheyang 发表于 2023-7-19 20:51:20

(setq ang(* 0.25 pi))
(polar(mapcar'+ p0(list X Y 0))(+(angle p0 p1)ang)(distance p1 p0))    用polar的计算

gaics 发表于 2023-7-19 20:55:00

guosheyang 发表于 2023-7-19 20:49
x=484.937   y=348.189   左下角点 p0(758.191 -682.822 0.0)    左上角点p1 (758.191 -520.267 0.0)旋转 ...

我试试,刚才用几个简单点试的

gaics 发表于 2023-7-19 21:09:17

guosheyang 发表于 2023-7-19 20:51
(setq ang(* 0.25 pi))
(polar(mapcar'+ p0(list X Y 0))(+(angle p0 p1)ang)(distance p1 p0))    用pola ...

放在原点0,0,0就可以。可能还是要考虑x0y0

guosheyang 发表于 2023-7-19 21:14:47

gaics 发表于 2023-7-19 21:09
放在原点0,0,0就可以。可能还是要考虑x0y0

嗯原点时是对的

gaics 发表于 2023-7-19 21:25:46

guosheyang 发表于 2023-7-19 21:14
嗯原点时是对的

(mapcar'+(trans(trans (mapcar '-(list x1 y1 0)(list x0 y0 0)) 0 (list (cos (- ang))(sin (- ang))))'(1 0 0)0)(list x y)(list x0 y0 0))
先减掉x0 y0,最后再加回来。

gaics 发表于 2023-7-19 21:42:59

guosheyang 发表于 2023-7-19 20:51
(setq ang(* 0.25 pi))
(polar(mapcar'+ p0(list X Y 0))(+(angle p0 p1)ang)(distance p1 p0))    用pola ...

这个问题还是用polar简单,而且也好理解

guosheyang 发表于 2023-7-19 22:18:44

gaics 发表于 2023-7-19 21:42
这个问题还是用polar简单,而且也好理解

嗯   的确是那样的

guosheyang 发表于 2023-7-19 22:22:51

(mapcar'+(trans(trans (mapcar'- p1 p0)0
         (list(cos ang)(-(sin ang))))
          '(1 0 0)0)p0)          这个式子可以用来求 p1点绕p0点 旋转ang角度后的坐标

gaics 发表于 2023-7-19 22:27:56

guosheyang 发表于 2023-7-19 22:22
(mapcar'+(trans(trans (mapcar'- p1 p0)0
         (list(cos ang)(-(sin ang))))
          '(1 0 0)0)p0) ...

是的。但是为什么要用负角度我自己都没搞懂,哎。

weilu 发表于 2023-7-20 10:48:04

用高飞鸟的线性变换矩阵函数也可以实现
页: 1 2 [3]
查看完整版本: 求点在用户坐标系下的坐标