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

找人帮你做ppt的网站吗seo中文全称是什么

找人帮你做ppt的网站吗,seo中文全称是什么,如何给wordpress文章排版,网站建设中html 下载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.dinnco.com/news/84515.html

相关文章:

  • 手机端自适应网站布局seo分析师招聘
  • 小红书推广方式有哪些aso安卓优化
  • python 做网站速度免费手机网站建站平台
  • 制作公司网站流程seo入门免费教程
  • 太原建站模板网站站长工具下载app
  • 网站开发需要什么配置的电脑如何做seo优化
  • 如何建网站平台百度seo培训班
  • 海珠网站建设广州seo公司
  • 快递建站收费标准上海排名优化推广工具
  • 网站建设方案书范本网站外链代发
  • 想自学软件开发难吗网络优化工具
  • 最简单的做网站郑州网站推广公司咨询
  • 怎么查看网站空间seo是什么意思为什么要做seo
  • 宁波网站建设设计公司排名如何建立网站 个人
  • 大连建设厅网站小程序运营推广公司
  • 手机网站模板 怎样做搭建一个app平台需要多少钱
  • 百度网站建设技术百度风云榜电视剧排行榜
  • 做什麽网站有前景苏州优化网站公司
  • 网页版游戏排行榜2022青岛seo全网营销
  • 网站模版 源码之家微信推广平台
  • 教务在线网站开发报告书如何给企业做网络推广
  • 企业网站怎么做推广seo优化总结
  • 高端网站设计品牌东莞今天发生的重大新闻
  • 私人网站设计公司公司优化的概念
  • 厦门的网站建设公司天津放心站内优化seo
  • 一个完整的电商网站开发周期营销推广投放
  • 一个网站做多有几种颜色长春seo排名
  • 最新网站开发软件专业网站seo推广
  • 可以做展示页面的网站seo薪酬水平
  • 河池网站优化长春seo按天计费