请高人指点如何用多段线画箭头
用leader画箭头的时候,有时候箭头大小为0,也不知道到底为什么。于是就想用多段线画,
但是关于如何画还不太清楚。
用多段线画箭头是否3个点就可以了呢?
起点,重点,和箭头结束的那个点。
箭头的点是否还要用向量计算呢,
还是多段线本身就有blug,可以设置何时画箭头?
求高人指点。
谢谢! 命令: _pline
指定起点:
当前线宽为 0.0000
指定下一个点或 [圆弧(A)/半宽(H)/长度(L)/放弃(U)/宽度(W)]: w
指定起点宽度 <0.0000>: 2
指定端点宽度 <2.0000>: 2
指定下一个点或 [圆弧(A)/半宽(H)/长度(L)/放弃(U)/宽度(W)]:
指定下一点或 [圆弧(A)/闭合(C)/半宽(H)/长度(L)/放弃(U)/宽度(W)]: w
指定起点宽度 <2.0000>: 10
指定端点宽度 <10.0000>: 0
指定下一点或 [圆弧(A)/闭合(C)/半宽(H)/长度(L)/放弃(U)/宽度(W)]: 感谢指点,画出来了。
谢谢!
public void DrawArrow()
{
Point2d startPoint = new Point2d(10,0);
Point2d middlePoint = new Point2d(50,0);
Point2d endPoint = new Point2d(60,0);
Polyline pLeader = new Polyline();
pLeader.AddVertexAt(0, startPoint, 0, 0, 0);
pLeader.AddVertexAt(1, middlePoint, 0, 1, 0);
pLeader.AddVertexAt(2, endPoint, 0, 1, 0);
Database db = HostApplicationServices.WorkingDatabase;
using (Transaction trans = db.TransactionManager.StartTransaction()) {
BlockTable bt = (trans.GetObject(db.BlockTableId, OpenMode.ForWrite)) as BlockTable;
BlockTableRecord btr = (trans.GetObject(bt, OpenMode.ForWrite)) as BlockTableRecord;
ObjectId objectId = btr.AppendEntity(pLeader);
trans.AddNewlyCreatedDBObject(pLeader, true);
trans.Commit();
trans.Dispose();
}
}
页:
[1]