乐筑天下

搜索
欢迎各位开发者和用户入驻本平台 尊重版权,从我做起,拒绝盗版,拒绝倒卖 签到、发布资源、邀请好友注册,可以获得银币 请注意保管好自己的密码,避免账户资金被盗
查看: 262|回复: 14

getsubentity中的TransMatrix是什么?

[复制链接]

170

主题

1424

帖子

8

银币

顶梁支柱

Rank: 50Rank: 50

铜币
2119
发表于 2006-7-26 22:34:28 | 显示全部楼层 |阅读模式
ThisDrawing.Utility.GetSubEntityent, varPick, TransMatrix, ContextData, vbCrLf&"p"
我还没有搞砸很多转换,所以我不确定这意味着什么。
目标:我有一个函数,它向块添加一个前导和注释,其中mtext显示块的名称或附加到块的xdata。它工作得很好,很方便。但是我想在块上选择一个点(这个点实际上只是选择框的中心),并将该点更改为块上最近的点,作为我的领导者箭头。
我有一个nearestpoint toEnt函数,但ent通过GetSubEntity函数传递的不是块ref中的实体,而是块中0,0处的实体。
TransMatrix大概是块ref经历的翻译矩阵,但选择一个对象并将相同的TransMatrix应用于它会使它变得卷曲摇摆。
有什么想法吗?

本帖以下内容被隐藏保护;需要你回复后,才能看到!

游客,如果您要查看本帖隐藏内容请回复
回复

使用道具 举报

12

主题

150

帖子

3

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
198
发表于 2006-7-26 22:47:22 | 显示全部楼层
对不起,布莱科,
我不明白你在做什么。据我所知,你只需要得到块内的每个实体,然后对于每种类型的ent,即直线或圆弧,找到端点、中点等,将所有发现添加到数组中,找到从拾取位置到最近ent的最短距离,并将该点用作你的引线。这看起来很简单,我知道你是一个比我好得多的程序员,所以我一定不明白为什么你需要一个矩阵
话虽如此,我确实有一些代码放在块实体中,但我只是从中提取扩展数据,所以你可能需要那个矩阵,因为我不能肯定我能得到正确的几何信息,因为我从未真正尝试过。
回复

使用道具 举报

170

主题

1424

帖子

8

银币

顶梁支柱

Rank: 50Rank: 50

铜币
2119
发表于 2006-7-27 00:22:39 | 显示全部楼层
我想将拾取的点转换到块实体(不是blockref)旁边的等效位置,
然后我可以找到实体上最近的点,然后将其转换回blockref。
我怀疑transmatrix中的信息是正确的,但我不知道如何使用它。
回复

使用道具 举报

69

主题

875

帖子

15

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1146
发表于 2006-7-27 00:58:51 | 显示全部楼层
因此,你要从插入的块ref中选取一个子元素,这给了你一个点,在计算完子元素上的最近点后,它会返回给你与块表记录的关系(就像插入在0,0,0),你不能使用块变换矩阵将你的前导变换为插入的ref,你是这么说的吗?
回复

使用道具 举报

170

主题

1424

帖子

8

银币

顶梁支柱

Rank: 50Rank: 50

铜币
2119
发表于 2006-7-27 01:55:18 | 显示全部楼层
不完全是米克。给出的 ent 是 blockrecord 的一部分,而不是 blockref 的一部分。(我可以使用复制对象复制它,使用模型空间作为新所有者,但它就像插入在0,0,0)。事实上,我不知道我选择了哪个块。选择的点是我选择的实际点。
所以我有一个奇怪的混合。领带绝对在转矩阵中
回复

使用道具 举报

69

主题

875

帖子

15

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1146
发表于 2006-7-27 02:27:46 | 显示全部楼层
好的,这就是我的意思/想法。
尝试从拾取的块ref反转矩阵,变换拾取的点,进行计算,然后变换回来。我不知道vba是否能做到这一点,但如果你必须这样做,你只需对给定矩阵中的每个值求反,这样就可以了。
回复

使用道具 举报

170

主题

1424

帖子

8

银币

顶梁支柱

Rank: 50Rank: 50

铜币
2119
发表于 2006-7-27 22:20:14 | 显示全部楼层
谢谢米克。我的同事懂一点数学,把矩阵转置后就可以逆向工作了。所以现在我想,如果我能搞清楚反转,我可能就有所发现了。(没有原生函数)。令人失望的是,我宁愿只是翻译pickedpoint,但我不知道如何输入到一个转换矩阵。vba只接受对象。
我想我得好好研究一下线性代数,毁掉一瓶好啤酒。
回复

使用道具 举报

170

主题

1424

帖子

8

银币

顶梁支柱

Rank: 50Rank: 50

铜币
2119
发表于 2006-7-31 00:37:36 | 显示全部楼层
取得了一些进展。
尽管如此,这个InverseMatrix的东西还是很奇怪的。
我制作的函数似乎还可以,但抛出了一个摆动器。
它依赖于向矩阵中添加一个单位矩阵,然后
做一些透视工作,并检查第一部分是否调谐到单位矩阵中。
嗯,我不确定它们是否有效
。听起来不像是proress吗?
回复

使用道具 举报

69

主题

875

帖子

15

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1146
发表于 2006-7-31 00:47:34 | 显示全部楼层
你不能从插入的块ref(标准化的法线,x和y方向,向量到插入点)的信息中创建一个矩阵,并否定每个元素来反转矩阵吗??
回复

使用道具 举报

69

主题

875

帖子

15

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1146
发表于 2006-7-31 01:00:38 | 显示全部楼层
好的,我看到你在vba中提供了正常和旋转道具。
让我们试试这个 -
创建一个点(inspntX + 1,inspntY,inspntZ)'//沿xaxis的一个单位:
通过给定的腐烂角度旋转这个新点
得到矢量从inspnt到新点的交叉乘积和块的法线,这将给你一个Y轴。
现在交叉乘积新的Yaxis与正交的正交(是一个词)轴。
现在,您应该有足够的信息来构造一个矩阵,给定新的 3 个轴和插入点的平移向量。将它们全部否定以反转方向并转换您的点。
这听起来可行吗??
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

QQ|关于我们|小黑屋|乐筑天下 繁体中文

GMT+8, 2025-7-6 03:48 , Processed in 0.963354 second(s), 72 queries .

© 2020-2025 乐筑天下

联系客服 关注微信 帮助中心 下载APP 返回顶部 返回列表