明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 5215|回复: 9

请教一个西安80坐标转北京54坐标四参数转换问题

[复制链接]
发表于 2013-5-8 21:20:22 | 显示全部楼层 |阅读模式
3明经币
已知这四个参数
纵坐标平移参数X=59.279033
横坐标平移参数Y=59.191856
旋转角度T=0.0001852315256(度)
伸缩尺度K=0.999985766528


我可以写一个这样的程序来进行转换吗?因为转出来后几公分偏差,不知道写是不是正确的
  1. (defun c:xzb()
  2.   (setq sicanshu (ssget) )
  3.   (command"move" sicanshu "" "0,0" "59.279033,59.191856" "")
  4.   (command"_scale" sicanshu "" "0,0" "0.999985766528" "")
  5.   (command"_rotate" sicanshu "" "0,0" "0.0001852315256" "")
  6. )

最佳答案

查看完整内容

不同椭球转换是不严密的。
发表于 2013-5-8 21:20:23 | 显示全部楼层
不同椭球转换是不严密的。
回复

使用道具 举报

 楼主| 发表于 2013-5-10 17:50:05 | 显示全部楼层
有人在不。。。。。。
回复

使用道具 举报

发表于 2013-5-14 20:34:30 | 显示全部楼层
几公分的误差属于正常

点评

感谢  发表于 2013-8-3 22:41
回复

使用道具 举报

发表于 2013-12-27 16:21:57 | 显示全部楼层
你的程序不对,并不是简单的平移旋转,应该是:
X=x0+(1+K)(cosT*x1-sinT*y1)
Y=y0+(1+K)(sinT*x1+cosT*y1)
回复

使用道具 举报

发表于 2014-5-11 21:44:45 | 显示全部楼层
hylucky 发表于 2013-12-27 16:21
你的程序不对,并不是简单的平移旋转,应该是:
X=x0+(1+K)(cosT*x1-sinT*y1)
Y=y0+(1+K)(sinT*x1+cosT*y ...

所有点的数据都要这样,那各个图元都要按新的坐标重新画了?
回复

使用道具 举报

发表于 2020-11-11 09:54:42 | 显示全部楼层
四参数就是针对二维变换,这样是完全可行的,5楼的公式本身就是旋转及缩放
结果肯定完全一致
只是注意参数 如果是 老==>新,则操作仅是老图==》新图
回复

使用道具 举报

 楼主| 发表于 2020-11-11 10:01:19 | 显示全部楼层
哈,坟贴,其实这么转是没问题的,之所以产生不一样的结果是因为顺序不一样,先缩放,再旋转,最后平移,就得到一样的结果了
回复

使用道具 举报

发表于 2020-11-11 12:41:52 | 显示全部楼层
tryhi 发表于 2020-11-11 10:01
哈,坟贴,其实这么转是没问题的,之所以产生不一样的结果是因为顺序不一样,先缩放,再旋转,最后平移,就 ...

写了个函数 http://bbs.mjtd.com/forum.php?mo ... 6orderby%3Ddateline
回复

使用道具 举报

发表于 2021-4-8 15:40:36 | 显示全部楼层
这种转换跟工具软件不一致,不知为何?
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-11-6 09:44 , Processed in 0.294072 second(s), 29 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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