绘制一个多边形函数
本帖最后由 chpmould 于 2010-12-2 07:30 编辑请教老师:
如何绘制一个六边形。
谢谢狐哥! 问题已解决...
public static void Test2()
{
var db = HostApplicationServices.WorkingDatabase;
var doc = Application.DocumentManager.GetDocument(db);
var ed = doc.Editor;
var resDbl = ed.GetDouble("\n输入六边形的高度:");
if (resDbl.Status != PromptStatus.OK)
return;
//边长
double a = resDbl.Value / Math.Pow(3, 0.5);
using (var tr = db.TransactionManager.StartTransaction())
{
var pl = new Polyline();
//以0,0为起点
Point2d pt = Point2d.Origin;
//按边长生成一个向量
Vector2d vec = Vector2d.XAxis * a;
for (int i = 0; i < 6; i++)
{
pl.AddVertexAt(i, pt, 0, 0, 0);
//移动到下一个点
pt += vec;
//循环每步将向量旋转60度
vec = vec.RotateBy(Math.PI / 3);
}
pl.Closed = true;
var btr = (BlockTableRecord)tr.GetObject(db.CurrentSpaceId, OpenMode.ForWrite);
btr.AppendEntity(pl);
tr.AddNewlyCreatedDBObject(pl, true);
tr.Commit();
}
} 谢谢狐哥:原来自带是没有多边形函数,需要计算得来。。。 回复 lzh741206 的帖子
请问这个是不是要有ARX才行的呀?如果不在arx情况下,在C#情况下可以如何用addpolyline呢?菜鸟求助,谢谢 com库的话直接看帮助里的VBA部分,或者VBA版有中文的翻译版
页:
[1]