请教一个西安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" "")
) 不同椭球转换是不严密的。 有人在不。。。。。。 几公分的误差属于正常 你的程序不对,并不是简单的平移旋转,应该是:
X=x0+(1+K)(cosT*x1-sinT*y1)
Y=y0+(1+K)(sinT*x1+cosT*y1) 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 ...
所有点的数据都要这样,那各个图元都要按新的坐标重新画了? 四参数就是针对二维变换,这样是完全可行的,5楼的公式本身就是旋转及缩放
结果肯定完全一致
只是注意参数 如果是 老==>新,则操作仅是老图==》新图 哈,坟贴,其实这么转是没问题的,之所以产生不一样的结果是因为顺序不一样,先缩放,再旋转,最后平移,就得到一样的结果了 tryhi 发表于 2020-11-11 10:01
哈,坟贴,其实这么转是没问题的,之所以产生不一样的结果是因为顺序不一样,先缩放,再旋转,最后平移,就 ...
写了个函数 http://bbs.mjtd.com/forum.php?mod=viewthread&tid=182593&extra=page%3D1%26filter%3Dauthor%26orderby%3Ddateline 这种转换跟工具软件不一致,不知为何?
页:
[1]