当前位置: 首页 > news >正文

注册个人网站域名是com好还是net好个人网站怎样申请

注册个人网站域名是com好还是net好,个人网站怎样申请,建设公司建站系统,赣州人才网最新招聘信息网1 、界址点起点位置C# CAD2016 多边形顶点按方向重新排序 2、 界址点顺时针逆时针走向 C# CAD2016 判断多边形的方向正时针或逆时针旋转 3、块文件插入 //已知块文件名称 GXGLQTC //块文件需要插入的坐标点 scaledPoint// 插入块到当前图纸中的指定位置ObjectId newBlockId;B…


1 、界址点起点位置
C# CAD2016 多边形顶点按方向重新排序

 2、 界址点顺时针逆时针走向

C# CAD2016 判断多边形的方向正时针或逆时针旋转

 3、块文件插入

//已知块文件名称 GXGLQTC
//块文件需要插入的坐标点 scaledPoint// 插入块到当前图纸中的指定位置ObjectId newBlockId;BlockTable currentBlockTable = tr.GetObject(db.BlockTableId, OpenMode.ForWrite) as BlockTable;newBlockId = currentBlockTable["GXGLQTC"];using (Transaction transaction = db.TransactionManager.StartTransaction()){BlockReference blockRef = new BlockReference(scaledPoint, newBlockId);BlockTable bt = transaction.GetObject(db.BlockTableId, OpenMode.ForRead) as BlockTable;BlockTableRecord activeSpace = transaction.GetObject(bt[BlockTableRecord.ModelSpace], OpenMode.ForWrite) as BlockTableRecord;activeSpace.AppendEntity(blockRef);transaction.AddNewlyCreatedDBObject(blockRef, true);transaction.Commit();}
 4、主要步骤
  1. 获取当前活动文档、数据库和编辑器对象。
  2. 设置一个选择过滤器,只允许用户选择"宗地"图层上的LWPOLYLINE对象。
  3. 用户根据过滤规则进行实体选择后,程序处理所选中的每个闭合多段线。
  4. 对于每个闭合多段线,首先确保它是闭合的且至少有一个顶点,并将所有顶点存储到一个列表中。
  5. 注释部分:这部分原来包含计算多边形方向和排序顶点的逻辑,但后来被注释掉,实际代码中并没有执行这部分操作。
  6. 遍历排序后的顶点列表,为每个顶点创建一个文本标签(DBText)并在模型空间中绘制,标签内容是其顺序编号,位置基于顶点坐标并进行了缩放和平移处理。
  7. 同样针对每个顶点,在模型空间中插入名为“GXGLQTC”的块参照,并将其定位在与文本标签相同的位置。

另外,还提供了一个辅助方法GetCenterOfPolyline,用于计算给定多段线的中心点,但在当前代码片段中并未使用此方法来确定文本标签或块参照的位置。

 5、完整代码

namespace cad自定义面板集.jzd
{internal class jzd01{// 选定"宗地"图层上的封闭对象(例如闭合多段线)[CommandMethod("GenerateBoundaryPoints")]public static void GenerateBoundaryPoints(){// 获取当前活动文档和数据库// 获取当前AutoCAD应用中的活动文档、数据库和编辑器对象Document doc = Application.DocumentManager.MdiActiveDocument;Database db = doc.Database;Editor ed = doc.Editor;// 创建一个选择过滤器,限制用户只能选择"宗地"图层上的LWPOLYLINE对象作为外部边界SelectionFilter outerFilter = new SelectionFilter(new TypedValue[] {new TypedValue((int)DxfCode.Start, "LWPOLYLINE"),new TypedValue((int)DxfCode.LayerName, "宗地")
});// 提示用户根据上述规则进行实体选择,并获取选择结果PromptSelectionResult outerSelRes = ed.GetSelection(outerFilter);// 检查用户是否成功选择了实体if (outerSelRes.Status == PromptStatus.OK){using (Transaction tr = db.TransactionManager.StartTransaction())// 开始事务处理以确保数据一致性{foreach (ObjectId outerId in outerSelRes.Value.GetObjectIds())// 遍历所有被选中的外部多段线{Polyline outerPolyline = (Polyline)tr.GetObject(outerId, OpenMode.ForRead);// 确保所选多段线是闭合的且至少有一个顶点if (outerPolyline.Closed && outerPolyline.NumberOfVertices > 0){List<Point2d> sortedOuterPoints = new List<Point2d>();for (int i = 0; i < outerPolyline.NumberOfVertices; i++){Point2d point = outerPolyline.GetPoint2dAt(i);sortedOuterPoints.Add(point);}多边形顶点集合outerPoints的边界框//var boundingBox = outerPoints.Aggregate(//    new { MinX = double.MaxValue, MaxX = double.MinValue, MinY = double.MaxValue, MaxY = double.MinValue },//    (a, b) =>//    {//        return new//        {//            MinX = Math.Min(a.MinX, b.X),//            MaxX = Math.Max(a.MaxX, b.X),//            MinY = Math.Min(a.MinY, b.Y),//            MaxY = Math.Max(a.MaxY, b.Y)//        };//    });找到左上角的顶点作为候选西北角//Point2d topLeftCorner = new Point2d(boundingBox.MinX, boundingBox.MaxY);找到最接近左上角(西北方向)的顶点索引//int startVertexIndex = outerPoints.IndexOf(outerPoints.OrderBy(p => Math.Pow(p.X - topLeftCorner.X, 2) + Math.Pow(p.Y - topLeftCorner.Y, 2)).First());确保起始顶点是真正的西北角,并按照顺时针排序//bool isClockwiseFromNorthwest = true;//int j = outerPoints.Count - 1;//double sum = 0;//for (int i = 0; i < outerPoints.Count - 1 || (i == outerPoints.Count - 2 && j == outerPoints.Count - 1); i++)//{//    // Shoelace公式的实现,计算三角形对角线乘积之和//    if (i != outerPoints.Count - 2 || j != outerPoints.Count - 1)//    {//        sum += (outerPoints[j].X - outerPoints[i].X) * (outerPoints[(j + 1) % outerPoints.Count].Y + outerPoints[i].Y);//    }//    else//    {//        // 处理最后一个三角形,连接最后一个顶点和第一个顶点//        sum += (outerPoints[j].X - outerPoints[i].X) * (outerPoints[0].Y + outerPoints[i].Y);//    }//    // 更新下一次迭代的索引值(注意这里在循环体内部更新j以正确处理最后一个元素之后的“下一个”顶点)//    j = i;//}//ed.WriteMessage(sum + "sum\n");根据有符号面积判断多边形的方向//if (sum > 0)//{//    isClockwiseFromNorthwest = false;//}//else//{//    isClockwiseFromNorthwest = true;//}//ed.WriteMessage(isClockwiseFromNorthwest + "方向\n");创建一个新的列表,包含从西北角开始按顺时针顺序排列的顶点//List<Point2d> sortedOuterPoints = new List<Point2d>();//if (!isClockwiseFromNorthwest)//{//    ed.WriteMessage(isClockwiseFromNorthwest + "方向1");//    // 如果原始顺序不是从西北角开始顺时针排列,则反转整个列表并重新调整起始点位置//    var reversedOuterPoints = outerPoints.ToList();//    reversedOuterPoints.Reverse();//反序//    sortedOuterPoints.AddRange(reversedOuterPoints);//    sortedOuterPoints.RemoveAt(sortedOuterPoints.Count - 1); // 移除最后一个顶点(与第一个顶点重叠)//    sortedOuterPoints.Insert(0, outerPoints[startVertexIndex]);//}//else//{//    ed.WriteMessage(isClockwiseFromNorthwest + "方向2");//    // 否则直接使用原始列表并调整起始顶点位置//    sortedOuterPoints.AddRange(outerPoints.Skip(startVertexIndex));//    sortedOuterPoints.Insert(0, outerPoints[startVertexIndex]);//}// 使用sortedOuterPoints进行后续操作if (sortedOuterPoints.Count > 0){Dictionary<Point2d, int> pointIndexDict = new Dictionary<Point2d, int>();for (int i = 0; i < sortedOuterPoints.Count; i++){// 创建并设置文本对象Point2d point = sortedOuterPoints[i];// 获取多边形的中心点Point3d center = GetCenterOfPolyline(outerPolyline);// 定义你的扩展因子,比如 1.5 表示扩大1.5倍double scaleFactor = 1.1;// 将顶点向中心点平移,然后按比例缩放Point3d scaledPoint = new Point3d((point.X - center.X) * scaleFactor + center.X,(point.Y - center.Y) * scaleFactor + center.Y,0);scaledPoint = new Point3d(point.X, point.Y,0);DBText text = new DBText();text.TextString = "T"+(i + 1).ToString();text.Height = 0.85;text.Position = scaledPoint;// 将文本添加到模型空间using (Transaction transaction = db.TransactionManager.StartTransaction()){BlockTable bt = transaction.GetObject(db.BlockTableId, OpenMode.ForRead) as BlockTable;BlockTableRecord ms = transaction.GetObject(bt[BlockTableRecord.ModelSpace], OpenMode.ForWrite) as BlockTableRecord;ms.AppendEntity(text);transaction.AddNewlyCreatedDBObject(text, true);transaction.Commit();}// 插入块到当前图纸中的指定位置ObjectId newBlockId;BlockTable currentBlockTable = tr.GetObject(db.BlockTableId, OpenMode.ForWrite) as BlockTable;newBlockId = currentBlockTable["GXGLQTC"];using (Transaction transaction = db.TransactionManager.StartTransaction()){BlockReference blockRef = new BlockReference(scaledPoint, newBlockId);BlockTable bt = transaction.GetObject(db.BlockTableId, OpenMode.ForRead) as BlockTable;BlockTableRecord activeSpace = transaction.GetObject(bt[BlockTableRecord.ModelSpace], OpenMode.ForWrite) as BlockTableRecord;activeSpace.AppendEntity(blockRef);transaction.AddNewlyCreatedDBObject(blockRef, true);transaction.Commit();}}}}}tr.Commit();}}}private static Point3d GetCenterOfPolyline(Polyline polyline){double xSum = 0, ySum = 0, zSum = 0;for (int i = 0; i < polyline.NumberOfVertices; i++){Point3d vertex = polyline.GetPoint3dAt(i);xSum += vertex.X;ySum += vertex.Y;zSum += vertex.Z;}return new Point3d(xSum / polyline.NumberOfVertices, ySum / polyline.NumberOfVertices, zSum / polyline.NumberOfVertices);}}
}

 

//感谢大家的点赞,收藏,转发,关注 
//附送AI 图片无版权 随意用 龙年大吉大利
通义万相        阿里最新推出的A绘画创作模型 

http://www.yayakq.cn/news/67794/

相关文章:

  • 仿淘宝网站源码 asp建设银行北京分行网站
  • 网站备案地址查询贵阳网站制作贵阳网站建设哪家好
  • 舟山普陀区建设信息网站中国住房和城乡建设部查询网站
  • 建设网站 xp如何做原创小说网站
  • 淮阴区建设局网站网络服务商英文缩写
  • 免费网站电视剧全免费中小企业网络构建
  • 产品网站开发视频推广网站
  • 汕头网站建设设计价格线上推广活动策划方案
  • 网站诊断表濮阳做网站的公司有哪些
  • 上海网站建设服务网站模板源文件
  • 网站设计布局的重要性wordpress 输出缩略图
  • 高水平大学建设大学网站wordpress段间距
  • 德泰诺网站建设中国制造网外贸平台app
  • 网站反链上海网站优化海
  • 网站建设常见问题处理没备案的网站
  • 百度站内搜索代码简单的报价表模板
  • 贵州建设职业技术学院官方网站项目之家app
  • 个人导航网站怎么备案网站开发包含网站维护吗
  • 企业网站升级最新军事新闻12小时
  • 网站编辑专题怎么做广州市线下教学
  • 电影网站开发现状企业网站营销案例
  • 可视化设计最重要的是确定网站的怎么做自己的网站?
  • dede网站地图标签小红书推广引流收费
  • 福田瑞沃自卸车官网搜索引擎优化平台
  • 做历史课件用哪个网站比较好网站建设的初期目标
  • 辽宁网站建设的网络科技公司保洁公司 网站模板
  • 产品包装设计网宁波网站优化
  • 将台地区网站建设做网站之前要备案是什么意思
  • 文化建设基金管理有限公司网站设计网站大全国内
  • 网站建设专业wordpress实现微信登录界面