明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
123
返回列表 发新帖
楼主: 960322

[提问] 求点在用户坐标系下的坐标

[复制链接]
发表于 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的计算
发表于 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)  旋转 ...

我试试,刚才用几个简单点试的
发表于 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
发表于 2023-7-19 21:14:47 | 显示全部楼层
gaics 发表于 2023-7-19 21:09
放在原点0,0,0就可以。可能还是要考虑x0y0

嗯  原点时是对的
发表于 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,最后再加回来。
发表于 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简单,而且也好理解
发表于 2023-7-19 22:18:44 | 显示全部楼层
gaics 发表于 2023-7-19 21:42
这个问题还是用polar简单,而且也好理解

嗯   的确是那样的
发表于 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角度后的坐标
发表于 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) ...

是的。但是为什么要用负角度我自己都没搞懂,哎。
发表于 2023-7-20 10:48:04 | 显示全部楼层
用高飞鸟的线性变换矩阵函数也可以实现
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2024-11-17 00:29 , Processed in 0.165748 second(s), 20 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表