[蔡__洛]不快乐 12:29:31
求解 如何取得 块或多重嵌套块内的对象在绝对坐标系下的 坐标和角度值?
[pzweng][pzweng]路人 12:30:09
nentselp
[蔡__洛]不快乐 12:31:47
这个函数是要交互输入的
我想要只通过图原名取得坐标
[vormittag]桔子 12:34:23
通过图元名是不可能的。
只通过图元名是不可能的。
[蔡__洛]不快乐 12:35:18
为什么 ?没有算法反算出坐标么?
[蔡__洛]不快乐 12:36:11
nentselp能得到坐标 那这个函数是怎么实现得到绝对坐标的呢?
[vormittag]桔子 12:36:25
同一个块定义的不同块插入,其对应块内对象的图元名是一致的。
[蔡__洛]不快乐 12:37:24
我之前用 块内坐标 结合插入insert的坐标反算 绝对坐标
但是 有的坐标 算出来不在真实的位置
[无痕]午夜咖啡 12:38:09
加镜像和缩放旋转。
[vormittag]桔子 12:38:11
nentselp 返回的点坐标和 entsel 返回的点坐标没啥区别。 nentselp 主要需要得到转换矩阵。
[无痕]午夜咖啡 12:38:16
矩阵变换
[vormittag]桔子 12:39:13
nentselp 返回的坐标值是选择点的位置。
[蔡__洛]不快乐 12:40:26
CAD肯定有方法可以得到绝对坐标的 不然 以dxf组码保存的数据就无法真实的显示到屏幕上
[vormittag]桔子 12:41:41
只通过块内对象图元名是不行的,还需要块插入图元的信息。
[蔡__洛]不快乐 12:43:02
是啊 有是 结合insert的坐标 和其中block的坐标 还有block中的对象相对坐标 求 wcs坐标
[vormittag]桔子 12:44:20
那就是两个坐标系坐标的转换了。
[蔡__洛]不快乐 12:44:35
我想把 块内的文字 在不炸开块的情况下 全部提取到块外面来 ,包括多重嵌套块内的文字也是一样
[蔡__洛]不快乐 12:45:54
我用递归算法 得到的有些坐标不在真实位置 跑到别的地方去了 有的又是对的
[蔡__洛]不快乐 12:46:40
桔子 我的想法和你一样的 按这个方法的确有的能够实现
但是有的却不行
[vormittag]桔子 12:47:00
你转换错了。
[蔡__洛]不快乐 12:47:29
如果我对块随机取一点做旋转之后 就没办法在取了真实位置了
[vormittag]桔子 12:48:22
你的坐标转换算错了。
[无痕]午夜咖啡 12:48:26
看看nentsel or nentselp
[vormittag]桔子 12:49:28
不是三个点都加减一个原点就行的,那只是最简单的平移。要用转换矩阵转换。
[蔡__洛]不快乐 12:50:18
目前我找到的 所有信息就是insert的组码10和50,block的组码10,还有对象的组码10或11还有组码50,仅有这些信息
[vormittag]桔子 12:51:01
210是很重要的组码。
[蔡__洛]不快乐 12:51:03
我知道 不是简单的加建 是用矩阵嘛 x y z 和 角度
[蔡__洛]不快乐 12:51:38
210 在2D下面 只有Z方向为1
[vormittag]桔子 12:52:48
你的矩阵转换是怎么算的?列个式子。
[无痕]午夜咖啡 12:55:20
不打算用nentsel么?
里面有矩阵变换的key
干嘛要自己算
[蔡__洛]不快乐 12:55:57
nentsel是交互的不行
[无痕]午夜咖啡 12:56:15
要不交互的?
[蔡__洛]不快乐 12:56:23
嗯
[蔡__洛]不快乐 12:57:07
桔子 我的那个 trans函数是自己写的
等我发你看下
[无痕]午夜咖啡 12:57:19
还挺高级,好好努力
[蔡__洛]不快乐 12:59:31
看起复杂 其实就是把pt 通过转换的基点坐标外加一个角度 变换到新坐标
[vormittag]桔子 13:00:11
概念完全错误,自以为是。
[蔡__洛]不快乐 13:01:25
我不知道你什么想法 但我这样写之前的东西能用 所以我觉得不知这个东西的问题
[vormittag]桔子 13:02:41
有的能用是碰巧。
[蔡__洛]不快乐 13:03:55
如果我这个有问题 你看下问题在哪?
[vormittag]桔子 13:04:51
如果三维坐标点转换,转换矩阵应该是多大的矩阵?
[vormittag]桔子 13:05:23
源点与转换后的点是什么关系?
[蔡__洛]不快乐 13:05:28
所以你没理解
[蔡__洛]不快乐 13:06:34
应为在2D上面操作 使用上不需要Z的操作
[vormittag]桔子 13:06:42
一样的
[vormittag]桔子 13:07:40
如果2d空间,转换矩阵是怎么构造? 多大尺度的矩阵,源点和转换后的点是什么关系?
[蔡__洛]不快乐 13:08:03
Z的自由度为0 变换矩阵就可以降阶了
我的变换矩阵是降阶后的矩阵
[蔡__洛]不快乐 13:09:15
我的函数如果 一开始就不输入Z值 那不就是一样的了么?
[vormittag]桔子 13:10:16
[m] 是转换矩阵。
[蔡__洛]不快乐 13:11:20
转换矩阵是3阶
[vormittag]桔子 13:12:28
最后一行是什么?
[蔡__洛]不快乐 13:13:08
我的那个第二个参数 去掉就有3个值有效 即x y 和 θ
可以构造变换矩阵
[qqimg]201309/{C33AC52B-BA31-8B68-0A75-BAC84CD4CA34}.jpg[/qqimg]
[vormittag]桔子 13:14:07
这只是旋转矩阵。
[vormittag]桔子 13:14:56
绕(0, 0) 的旋转矩阵。
[蔡__洛]不快乐 13:15:03
嗯再加上 原点坐标就行也就是 x y
[vormittag]桔子 13:16:42
你按变换顺序手动操作一遍,看看是不是你想的那回事。
[vormittag]桔子 13:17:24
注意,这个是绕(0, 0)的旋转。
[蔡__洛]不快乐 13:19:04
手动?
[vormittag]桔子 13:20:32
按你计算的顺序,先旋转再平移,或者先平移再旋转。用move 和 rotate 自己试试看。
[蔡__洛]不快乐 13:26:15
[qqimg]201309/{BB71D83B-406D-729E-CE0C-B480DCFDD982}.jpg[/qqimg]
[蔡__洛]不快乐 13:27:13
是这个错了么?
[vormittag]桔子 13:28:16
x是减 y是加
[无痕]午夜咖啡 13:28:58
矩阵变换是先镜像/旋转/缩放,最后再平移。还原的时候逆向处理
[蔡__洛]不快乐 13:34:11
变换矩阵的确写错 |