返回介绍

响应事件, 增加坐标变换功能

发布于 2023-08-09 23:10:33 字数 1407 浏览 0 评论 0 收藏 0

想要支持自定义实体的移动,旋转,缩放功能,需要添加坐标变换事件处理,事件名:CustomEntity_transformBy

ce1.png

函数实现c#代码如下:

 private void axMxDrawX1_CustomEntity_transformBy(object sender, _DMxDrawXEvents_CustomEntity_transformByEvent e)
        {
            e.pOk = 1;
            MxDrawCustomEntity pCustomEntity = (MxDrawCustomEntity)e.pCustomEntity;
            // 得到自定义实体类型
            var sGuid = pCustomEntity.Guid;

            if (sGuid == "DrawCustEntity")
            {
                if (!pCustomEntity.IsHave("Count"))
                    return;
                long lCount = pCustomEntity.GetLong("Count");

                // 对实体的点坐标进行坐标变换。
                for (long i = 0; i < lCount; i++)
                {
                    String sName;
                    sName = "Point" + (i + 1).ToString();
                    if (!pCustomEntity.IsHave(sName))
                        break;
                    // 取自定义实体的端点坐标。
                    MxDrawPoint pt = pCustomEntity.GetPoint(sName);
                    // 计算出新的坐标。
                    pt.TransformBy((MxDrawMatrix3d)e.pMatXform);
                    pCustomEntity.SetPoint(sName, pt);

                }
            }
        }

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文