明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1535|回复: 4

坐标系换算

[复制链接]
发表于 2015-8-21 18:02 | 显示全部楼层 |阅读模式
本帖最后由 skg123 于 2015-8-22 13:17 编辑

假设一个块内的坐标点是: x ,y ,z ,且一般不考虑法线矢量。
插入块的缩放比例是u, v ,w
块的旋转角度是  a
块的插入点坐标是 x0,y0,z0
那么这个点在世界坐标系是:
u*cos(a)*x - v*sin(a)*y + X0,
u*sin(a)*x +v*cos(a)*y +Y0,
w*Z0                      BY highflybird
http://bbs.mjtd.com/thread-93828-2-1.html    引用帖子中的 17楼

上面是数学坐标系的转换公式,
在测量学里还有建筑坐标转换到大地坐标,公式推导原理是一样的,就是要注意XY轴的对调关系。


实例演算:
X'OY'坐标系上的已知P'点坐标(1.9226,2.3196),缩放比例不考虑,U,V,W为1;
求P'点归算到XOY坐标系时的坐标值?
X'=cos(a)*x - sin(a)*y + X0
=1.9226*cos(44°17′18″)-2.3196*sin(44°17′18″)+32.409
=1.3763-1.6605+32.409
=32.16555
Y'=sin(a)*x +cos(a)*y +Y0
=1.9226*sin(44°17′18″)+2.3196*cos(44°17′18″)+14
=1.3425+1.6605+14
=17.003

以上是坐标系的换算方法。
本人本想推导从P点以O点为基点旋转一个角度到P'点位置,已知P点坐标,求P'点坐标的公式。不过上图的的公式在实践应用中也有价值。


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

x
发表于 2015-8-21 22:03 | 显示全部楼层
很实用的算法。。。
发表于 2015-8-22 07:43 | 显示全部楼层
支持楼主,算法具有实用价值
 楼主| 发表于 2015-10-19 17:56 | 显示全部楼层
本帖最后由 skg123 于 2015-10-19 18:15 编辑

推导从P点以O点为基点旋转一个角度到P'点位置,已知P点坐标,求P'点坐标的程序
(defun c:tt ( /)
   (setq pt0 (getPoint "\n 请选择旋转基点<旋转中心>:"))
   (setq pt1 (getPoint "\n 请选择旋转点:"))
(command "line" pt0 pt1 "")
   (setq ang0  (angle  pt0 pt1 ))
   (setq ang01 ( getreal"\n 输入旋转角度<30.2525=30度25分25秒>:"))
(setq du (fix ang01))
    (setq fen  (/ (fix (* 100 (- ang01 du)))) );
    (setq aa  (/ fen 0.06) )
    (setq miao  (/ (- (* ang01 100) (fix (* ang01 100))) 36) )
    (setq jd1 (+ du (/ aa 1000) miao))
   ; (setq ANG1 (/ (* (- 360 jd1 ) pi) -180) );角度换算成弧度
     (setq ANG1 (/ (* jd1 pi) 180) );角度换算成弧度
(setq pt3  (polar Pt0 (+ ANG0 ANG1 )  (distance  pt0  pt1 ) ));计算旋转后的点坐标
(command "line" pt0 pt3 "")
(princ "\n 程序结束!")
)
发表于 2015-12-15 08:45 | 显示全部楼层
是否是线性组合,矩阵算法吗??
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-3-29 23:09 , Processed in 0.248536 second(s), 27 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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