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

郑州网站建设哪家最好百度推广营销页

郑州网站建设哪家最好,百度推广营销页,贵州省城乡住房和建设厅网站首页,自学网站开发多少时间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、主要步骤 获取当前活动文档、数据库和编辑器对象。设置一个选择过滤器只允许用户选择宗地图层上的LWPOLYLINE对象。用户根据过滤规则进行实体选择后程序处理所选中的每个闭合多段线。对于每个闭合多段线首先确保它是闭合的且至少有一个顶点并将所有顶点存储到一个列表中。注释部分这部分原来包含计算多边形方向和排序顶点的逻辑但后来被注释掉实际代码中并没有执行这部分操作。遍历排序后的顶点列表为每个顶点创建一个文本标签DBText并在模型空间中绘制标签内容是其顺序编号位置基于顶点坐标并进行了缩放和平移处理。同样针对每个顶点在模型空间中插入名为“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){ListPoint2d sortedOuterPoints new ListPoint2d();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);创建一个新的列表包含从西北角开始按顺时针顺序排列的顶点//ListPoint2d sortedOuterPoints new ListPoint2d();//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){DictionaryPoint2d, int pointIndexDict new DictionaryPoint2d, 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.w-s-a.com/news/540213/

相关文章:

  • seo 新旧网站 两个域名福州设计网站建设
  • 如何做网站客户端如何做网络营销网站
  • 苏州网站建设制度打鱼网站建设
  • 瓜子二手车直卖网上海小红书seo
  • 天津中小企业网站制作珠海做网站的
  • 网站排名影响因素最牛的科技网站建设
  • 长春网站建设公司怎么样电商网站建设与开发期末考试
  • 品牌网站建设搭建国内外网站建设
  • 辽宁人社app一直更新整站seo定制
  • 兰州网站建设论坛装修品牌
  • 云南省城乡住房与建设厅网站用什么网站可以做电子书
  • 自己电脑怎么做网站服务器吗0基础如何做网站
  • 做网站的股哥网络整合营销方案策划
  • 网站你懂我意思正能量晚上唯品会网站开发费用
  • 网站认证金额怎么做分录网页无法访问是怎么回事
  • 樟木头建网站的wordpress自适应吸附菜单
  • 番禺网站设计威海微网站建设
  • 新乡网站建设服务网站建设的点子
  • 赛罕区城乡建设局网站什么是新媒体运营
  • 松原企业网站建设设计素材网排名
  • 网站建设是那个行业广东公司排名
  • 制作网站要多少钱seo是如何优化
  • 求个网站2020急急急做金融网站拘留多久
  • 网站后台管理系统怎么进seo网络推广外包公司
  • 中山市 做网站网站建设如何上传文件
  • 网站呢建设公众号制作要求
  • 网站备案证明在自己电脑上做网站
  • 沈阳旅游团购网站建设怎么制作网站搜索窗口
  • 做化学合成的网站有哪些枣庄住房和城乡建设局网站
  • 天猫优惠券网站怎么做的网络连接