今天在进行几何运算时,发现在UCS非世界坐标系的时候运算结果不正确
这与我以往的认知出现了冲突,我个人的经验,只有在用户交互的时候(如GetPoint,GetEntity),才用得到ucs。
当一个图元已经从id拿到,转化为Entity时,从改图元属性上取出的属性应该为均为世界坐标系。
经过我的排查后发现,Line的Delta属性居然在不同的UCS下取值不同。我原以为Delta属性就是起点到终点的向量。
这里我写了一个最小化测试Demo
var line1 = new Line(Point3d.Origin,new Point3d(100,0,0));
line1.Delta.Print();
line1.StartPoint.GetVectorTo(line1.EndPoint).Print();
其中print函数是Editor.WriteMessage(); 输出到命令行。
此代码在UCS为世界坐标系时输出是这样的
当修改了UCS后,输出如下
由此可见,“从图元上取得的属性值均为世界坐标系”,此说法虽然大部分情况正确,但未必完全正确。
标签:UCS,line1,Delta,autocad,图元,坐标系,属性 From: https://www.cnblogs.com/d1742647821/p/18206424