明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 3897|回复: 11

[求助]关于坐标转换的问题

  [复制链接]
发表于 2010-9-8 09:36:00 | 显示全部楼层 |阅读模式

发现越学问题越多了!!!又碰到个坐标转换的问题

我有一个用户坐标系,原点Pt1,x轴向量Vect1,y轴向量Vect2

那么我定义了一个坐标系

Dim UCS as new CoordinateSystem3d (pt1,Vect1,Vect2)

然后我又认为世界坐标的原点就是New Point3d(0,0,0), x轴是New Vector3d(1,0,0) y轴是New Vector3d(0,1,0)

所以我定义了 Dim WCS as new CoordinateSystem3d (New Point3d(0,0,0), New Vector3d(1,0,0),New Vector3d(0,1,0))

然后我定义了一个矩阵

Dim UCS2WCS as new matrix3d=Matrix3d.AlignCoordinateSystem (Ucs.orign,Ucs.xaxis,Ucs.yaxis,Ucs.zaxis,Wcs.orign,Wcs.xaxis,Wcs.yaxis,Wcs.zaxis)

从参数取名意思上看,通过这个矩阵,就能把点从UCS坐标转到WCS。

也就是wcsPt=ucsPt.TransformBy(UCS2WCS)

 

但是实际的操作中,我发现我给定的UCS坐标转过来的WCS坐标并不正确。

发表于 2010-9-8 10:39:00 | 显示全部楼层

倒置一下?

 楼主| 发表于 2010-9-8 10:59:00 | 显示全部楼层

呵呵,这里就版主能回答问题!!

 

我也试过倒置用wcsPt=ucsPt.TransformBy(UCS2WCS.inverse) ,结果更要命!!

 

你帮忙看看上面,我的思路正确吗?

发表于 2010-9-8 11:55:00 | 显示全部楼层

嗯,你的代码似乎感觉没什么问题?

调用的问题?

发表于 2010-9-8 12:20:00 | 显示全部楼层

会不会是Dim UCS as new CoordinateSystem3d (pt1,Vect1,Vect2)这一句有问题

pt1是世界坐标系的值还是用户坐标系的值,跟这个是否有关?

 楼主| 发表于 2010-9-8 13:31:00 | 显示全部楼层

谢谢楼上,

不过我觉得关系不大!因为是建立一个坐标系统嘛,如果都以自身为参照,那么所有的坐标系统都相同了!

UCS这个系统,我觉得,它需要携带的就是相对于WCS下的原点、轴向的信息。不然,它的建立跟WCS的建立就没区别了!

 楼主| 发表于 2010-9-9 11:07:00 | 显示全部楼层

问题还没有解决啊!!!

发表于 2010-9-9 12:22:00 | 显示全部楼层
"Dim UCS2WCS as new matrix3d=Matrix3d.AlignCoordinateSystem (Ucs.orign,Ucs.xaxis,Ucs.yaxis,Ucs.zaxis,Wcs.orign,Wcs.xaxis,Wcs.yaxis,Wcs.zaxis)"这一句语法好像有点问题,应该没有NEW关键字吧?
发表于 2010-9-9 12:37:00 | 显示全部楼层

    <CommandMethod("test")> _
    Public Sub test()
        Dim UCS As New CoordinateSystem3d(New Point3d(20, 10, 0), New Vector3d(1, 0, 0), New Vector3d(0, 1, 0))
        Dim WCS As New CoordinateSystem3d(Point3d.Origin, Vector3d.XAxis, Vector3d.YAxis)
        Dim UCSPoint As New Point3d(-10, -310, 0)
        Dim UCS2WCS As Matrix3d = Matrix3d.AlignCoordinateSystem(WCS.Origin, WCS.Xaxis, WCS.Yaxis, WCS.Zaxis, UCS.Origin, UCS.Xaxis, UCS.Yaxis, UCS.Zaxis)
        Dim WCSPoint As Point3d = UCSPoint.TransformBy(UCS2WCS)

    End Sub

这个好像能满足你的意思

 楼主| 发表于 2010-9-9 12:52:00 | 显示全部楼层

额~~,from和to对调了一下就OK了? 我要回去实验一下!

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

本版积分规则

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

GMT+8, 2024-11-26 01:43 , Processed in 0.189644 second(s), 24 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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