我正在努力计算在一定距离内与现有线的平行线。
我努力了:OdGeLine2d::getTrimmedOffset()
OdGeLineSeg2d::getTrimmedOffset()
OdGeLine3d::getTrimmedOffset()
OdGeLineSeg3d::getTrimmedOffset()
但它们所有人都抛出“未实现” 异常。
比我尝试使用OdGeOffsetCurve2d
类。此类的构造不会引发异常,但是任何尝试获得此曲线点的尝试都会引发异常。同样的异常(exception):“未实现”。
那么,如何获得OdGeOffsetCurve2d
上的要点呢?还是有其他方法可以计算偏移曲线?
这些getTrimmedOffset()
方法有什么用?只是抛出异常?
PS:我没有足够的声誉来创建新的 Teigha 标签。请这样做并编辑我的问题。 Teigha是用于开发CAD应用程序https://www.opendesign.com/的核心库。
最佳答案
如果我正确理解,您正在尝试创建与现有线平行的线。
如果您不是专门寻找OdGeLine2d,那么我对OdDbLine有类似问题的解决方案。
如您所知,如果我们有终点,要构造一条新线就是比赛。因此,我将帮助您找到具有OdDbLine类的平行线的终点。
您可以尝试从中得出。
我的代码是.Net版本代码,而不是c++版本代码。
如果您有OdDbLine
类的对象,可以说OdDbLine line
OdGePoint3d startPoint = new OdGePoint3d();line.getStartPoint(startPoint);
OdGePoint3d endPoint = new OdGePoint3d();line.getEndPoint(endPoint);
OdGeVector3d lineVector = GetLineVector(line);OdGeVector3d perpendicularVec = lineVector.perpVector(); perpendicularVec.normalize();perpendicularVec = perpendicularVec.Mul(-1);
偏移值是距当前行的数字距离
perpendicularVec.setToProduct(perpendicularVec, offSetValue);
OdGePoint3d newOffsetStartPt = startPoint.Add(perpendicularVec);OdGePoint3d newOffsetEndPt = endPoint.Add(perpendicularVec);
您可以使用新的端点来构造新的线。
希望能帮助到你 !!