tryhi 发表于 2013-5-8 21:20:22

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

已知这四个参数
纵坐标平移参数X=59.279033
横坐标平移参数Y=59.191856
旋转角度T=0.0001852315256(度)
伸缩尺度K=0.999985766528


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

myzwsc 发表于 2013-5-8 21:20:23

不同椭球转换是不严密的。

tryhi 发表于 2013-5-10 17:50:05

有人在不。。。。。。

qfkxc 发表于 2013-5-14 20:34:30

几公分的误差属于正常

hylucky 发表于 2013-12-27 16:21:57

你的程序不对,并不是简单的平移旋转,应该是:
X=x0+(1+K)(cosT*x1-sinT*y1)
Y=y0+(1+K)(sinT*x1+cosT*y1)

byghbcx 发表于 2014-5-11 21:44:45

hylucky 发表于 2013-12-27 16:21 static/image/common/back.gif
你的程序不对,并不是简单的平移旋转,应该是:
X=x0+(1+K)(cosT*x1-sinT*y1)
Y=y0+(1+K)(sinT*x1+cosT*y ...

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

wzg356 发表于 2020-11-11 09:54:42

四参数就是针对二维变换,这样是完全可行的,5楼的公式本身就是旋转及缩放
结果肯定完全一致
只是注意参数 如果是 老==>新,则操作仅是老图==》新图

tryhi 发表于 2020-11-11 10:01:19

哈,坟贴,其实这么转是没问题的,之所以产生不一样的结果是因为顺序不一样,先缩放,再旋转,最后平移,就得到一样的结果了

wzg356 发表于 2020-11-11 12:41:52

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

写了个函数 http://bbs.mjtd.com/forum.php?mod=viewthread&tid=182593&extra=page%3D1%26filter%3Dauthor%26orderby%3Ddateline

soly2006 发表于 2021-4-8 15:40:36

这种转换跟工具软件不一致,不知为何?
页: [1]
查看完整版本: 请教一个西安80坐标转北京54坐标四参数转换问题