美文网首页
C# 元素镜像

C# 元素镜像

作者: 板栗_1c34 | 来源:发表于2020-11-13 12:45 被阅读0次

    实体编程过程中,经常会遇到镜像操作,如果采用三维几何变换,涉及构造复杂的变换矩阵,对于镜像操作来说,得不偿失,在Bentley.GeometryNET.dll中的结构体DTransform3d下有TryMirrorPointToPoint镜像方法,方法参数如下:

    public struct DTransform3d
        {
     public static bool TryMirrorPointToPoint(DPoint3d point0, DPoint3d point1, out DTransform3d result);
        }
    

    该方法传入两个点,输出一个变换矩阵。
    在中国优先社区下,查找该方法参数的含义,point0为镜像平面上的任意一个点,point1为镜像平面法向量上的点,


    image.png

    现要获得元素A关于过点P垂直于XOZ的平面镜像的元素A1


    image.png
    测试结果:按照上述参数给定point0,point1,显然不能达到要求,因此该参数含义失效。

    正确方式:给定P0,P1,关于镜像平面对称即可。


    image.png

    特别提示:如P0(3,0,0),P1(7,0,0),需要注意ORD中单位为m,Microstation中单位为Uor,需要将这些点转换成Uor坐标,以免造成这些元素总关于原点对称。
    如:输入米制坐标P0(3,0,0,),P1(7,0,0)和Uor坐标P0(3uor,0,0),P1(7uor,0,0)二者相差Uor倍,米制坐标在原点附近,而Uor坐标在实际位置,因此大致关于原点坐标对称。

    相关文章

      网友评论

          本文标题:C# 元素镜像

          本文链接:https://www.haomeiwen.com/subject/hlsvbktx.html