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
用高飞鸟的线性变换矩阵函数也可以实现