网站建设零基础自学视频教程app开发哪家好公司

张小明 2026/1/17 1:04:57
网站建设零基础自学视频教程,app开发哪家好公司,东莞高端网站定制,如何在互联网上做推广好的#xff0c;之前的两篇文章大概介绍了一下关于做这个功能的背景和关于Aspose.CAD For .Net填充无效#xff0c;转用ACadSharp创建红线和界址点符号的内容#xff0c;具体看#xff1a; 基于.Net 8创建 CAD勘测定界图#xff08;一#xff09; 基于.Net 8创建 CAD勘测…好的之前的两篇文章大概介绍了一下关于做这个功能的背景和关于Aspose.CAD For .Net填充无效转用ACadSharp创建红线和界址点符号的内容具体看基于.Net 8创建 CAD勘测定界图一基于.Net 8创建 CAD勘测定界图二那么在这个地方就不多描述了直接进入正题界址点文字标注创建做过CAD、Bentley这些或者经常使用这种测量软件的基本也都清楚一个完整的界址点标注理论上应该是下面这样子的之前创建了下面的图形符号那么就该创建界址点的文字标注了。Step1创建文字这个比较明确添加TextEntity就行具体设置看个人喜好插入点是左下默认标准还是其他自定义反正都OK。直接代码使用如下vartextnewTextEntity{ValuetextValue,// 文本内容InsertPointinitialAnchor,// 插入点AlignmentPointinitialAnchor,// 对其点ColornewColor(255,255,255),// 字体颜色Height9.5,// 字体高度HorizontalAlignmentTextHorizontalAlignment.Right,// 水平对齐方式VerticalAlignmentTextVerticalAlignmentType.Top,// 竖直对齐方式LayerjzdbzLayer,// 所在层StyletextStyle};到了这个地方参数又多出来两个一个是Style一个是LayerStyle决定了你文字的样式是否支持中文在打开CAD的时候记得会有一个窗口提示你文字替换或者未找到对应SHX什么的如果不设置打开的中文有一些就是的符号。Step2创建Style// 创建SimSun样式varsimsundoc.TextStyles.Contains(SimSun)?doc.TextStyles[SimSun]:newACadSharp.Tables.TextStyle(SimSun){Filenamesimsun.ttf,BigFontFilenamesimsun.ttc};if(!doc.TextStyles.Contains(SimSun)){doc.TextStyles.Add(simsun);}// 提升中文兼容性doc.Header.CodePageANSI_936;// 简体中文代码页doc.Header.ExtendedNamestrue;Step3创建Layervarlayerdoc.Layers.Contains(layerName)?doc.Layers[layerName]:null;if(layer!null){// 可选更新颜色必须是具体颜色不能是 ByLayer/ByBlockif(color.HasValue){layer.Colorcolor.Value;}returnlayer;}// 不存在则创建layernewACadSharp.Tables.Layer(layerName){// 颜色必须是具体颜色否则会抛 ArgumentExceptionColorcolor??newColor(7)// 默认白色(ACI 7)若需 TrueColor 可用 new Color(255,255,255)};doc.Layers.Add(layer);这段代码在后面用到很多所以直接封装一个Function/// summary/// 创建图层/// /summary/// param namedoc/param/// param namelayerName/param/// param namecolor/param/// returns/returnsprivateACadSharp.Tables.LayerGetOrCreateLayer(CadDocumentdoc,stringlayerName,Color?colornull){// 已存在直接返回varlayerdoc.Layers.Contains(layerName)?doc.Layers[layerName]:null;if(layer!null){// 可选更新颜色必须是具体颜色不能是 ByLayer/ByBlockif(color.HasValue){layer.Colorcolor.Value;}returnlayer;}// 不存在则创建layernewACadSharp.Tables.Layer(layerName){// 颜色必须是具体颜色否则会抛 ArgumentExceptionColorcolor??newColor(7)// 默认白色(ACI 7)若需 TrueColor 可用 new Color(255,255,255)};doc.Layers.Add(layer);returnlayer;}到了这一步图层也就创建好了。结合第一步的创建文字文字的所在图层、样式、颜色全部设置完成。界址点的位置这东西说的明白一点界址点文字肯定是不能落在红线范围内的也就是说界址点文字的偏移量是你可以自定义的但是位置需要根据偏移后的位置是否落在红线内进行判断然后看看是不是要做Mirror之类的。知道这个前提就开始指定插入点就好。Step1基准点基准点之前就说过以红线Coordinate的坐标作为基准文字对齐一般是左下偏移量自己指定一般我给的是newXY(10,10)也就是X、Y方向各正向偏移10个单位。varoriginPtnewXY(polyLine.Coordinates[i].X,polyLine.Coordinates[i].Y);varoffsetnewXY(10,10);varinsertPtoriginPtoffset;Step2判断偏移点是否在红线内这个没啥多说的直接上代码/// summary/// 判断点是否在多边形内/// /summary/// param namepoint文本anchor点/param/// param namepolygoncad lwpolyline/param/// returns/returnsprivateboolIsPointInPolygon(XYZpoint,LwPolylinepolygon){varverticespolygon.Vertices;varlinarRingnewLinearRing(vertices.Select(vnewCoordinate(v.Location.X,v.Location.Y)).ToArray());varpolygonNtsnewPolygon(linarRing);varpointNtsnewNetTopologySuite.Geometries.Point(point.X,point.Y);returnpolygonNts.Covers(pointNts);}这个之所以不用polygonNts.Contains(pointNts);的原因很简单偏移后的点可能刚好在多边形的边上是吧Step3重算偏移点Mirror么initialAnchor new XYZ(center.X - delta.X * 1.75, center.Y - delta.Y * 1.75, 0);为了确定挪走了在给个系数1.75。结合上面3个步骤直接创建对应的方法大段代码就不贴了反正核心就是// 文本初始设置右上角位置左下角对齐vardeltaoffset??newXY(1,1);varinitialAnchornewXYZ(center.Xdelta.X,center.Ydelta.Y,0);varjzdbzLayerGetOrCreateLayer(doc,JieZhiDianBiaoZhu,newColor(255,255,255));if(IsPointInPolygon(initialAnchor,polygon)){initialAnchornewXYZ(center.X-delta.X*1.75,center.Y-delta.Y*1.75,0);vartextnewTextEntity{ValuetextValue,InsertPointinitialAnchor,AlignmentPointinitialAnchor,ColornewColor(255,255,255),Height9.5,HorizontalAlignmentTextHorizontalAlignment.Right,VerticalAlignmentTextVerticalAlignmentType.Top,LayerjzdbzLayer};entList.Add(text);}else{vartextnewTextEntity{ValuetextValue,InsertPointinitialAnchor,AlignmentPointinitialAnchor,ColornewColor(255,255,255),Height9.5,HorizontalAlignmentTextHorizontalAlignment.Left,VerticalAlignmentTextVerticalAlignmentType.Bottom,LayerjzdbzLayer};entList.Add(text);}doc.ModelSpace.Entities.AddRange(entList);结合前面文章说到的创建界址点符号结合这个内容封一个方法就行总之按照这个方法创建的界址点效果如下边长标注上面说完了如何创建界址点接下来就是边长标注了步骤大致和之前一样只不过多了个旋转因为角度是要跟着边的K变化的。是否指定偏移量创建文本偏移后的文本是否在红线内重新计算偏移量文本创建计算旋转角旋转文本按照这个步骤之前的不说直接开始计算旋转角Step1:计算方向向量和角度:vardirvEnd-vStart;// 方向向量从起点指向终点varangleMath.Atan2(dir.Y,dir.X)0?Math.Atan2(dir.Y,dir.X)Math.PI:Math.Atan2(dir.Y,dir.X);dir简单说就是这条线的“方向”比如向右是 (1,0)向下是 (0,1)。angle用 Math.Atan2 算出这个方向的角度弧度。Math.Atan2 默认是“数学坐标系”y轴向上。Step2:计算法线方向左法线// 法线方向左法线varnormalAngleangleMathHelper.HalfPI;Step3:标签位置varlabelPosMath.Atan2(dir.Y,dir.X)0?XY.Polar(mid,offset*(-3.5),normalAngle):XY.Polar(mid,offset,normalAngle);XY.Polar(mid, offset, normalAngle)从 mid中点出发沿 normalAngle法线方向偏移 offset 距离算出标签坐标。最后创建文字// 创建文字居中对齐vartextnewTextEntity{ValuetextMeters,AlignmentPointlabelPos.ConvertXYZ(),InsertPointlabelPos.ConvertXYZ(),Rotationangle,// 与边斜率一致Height5.5,// 控制文字大小HorizontalAlignmentTextHorizontalAlignment.Center,VerticalAlignmentTextVerticalAlignmentType.Middle,LayerbcbzLayer};还是如果需要那么封装方法最后添加完的边长标注效果如下以上本篇到此结束下一篇就觉得写怎么创建小图斑的斜线填充和标注了……
版权声明:本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!

旅游网站开发意义wordpress友链顺序

PyTorch-CUDA-v2.9镜像能否用于边缘设备?适用场景分析 在智能摄像头实时识别人流、车载系统即时响应路况的今天,AI 推理早已从数据中心走向终端现场。开发者们越来越频繁地面临一个现实问题:能不能直接把训练时用的 PyTorch-CUDA 镜像搬到边…

张小明 2026/1/13 16:45:52 网站建设

银川网站制作公司网址站

✅作者简介:热爱科研的Matlab仿真开发者,擅长数据处理、建模仿真、程序设计、完整代码获取、论文复现及科研仿真。🍎 往期回顾关注个人主页:Matlab科研工作室🍊个人信条:格物致知,完整Matlab代码及仿真咨询…

张小明 2026/1/14 13:30:08 网站建设

电脑版网站转手机版怎么做百度学术查重

GmsCore架构设计完整解析:突破Play服务依赖的终极指南 【免费下载链接】GmsCore Free implementation of Play Services 项目地址: https://gitcode.com/GitHub_Trending/gm/GmsCore 在Android开发中,Google Play服务的依赖问题一直是开发者面临的…

张小明 2026/1/13 3:19:13 网站建设

招商信息发布网站大全同仁县公司网站建设

ESP32-Camera终极指南:5分钟快速配置与图像处理实战 【免费下载链接】esp32-camera 项目地址: https://gitcode.com/gh_mirrors/es/esp32-camera 你是否曾经想过将一个小巧的摄像头模块连接到ESP32开发板上,实现实时图像采集和智能处理&#xff…

张小明 2026/1/13 22:44:20 网站建设

网站收录查询主要由哪几个网站wordpress 手机 看视频播放器

Realm数据库全文搜索重构指南:重新定义移动端数据检索架构 【免费下载链接】realm-java realm/realm-java: 这是一个用于在Java中操作Realm数据库的库。适合用于需要在Java中操作Realm数据库的场景。特点:易于使用,支持多种数据库操作&#x…

张小明 2026/1/13 22:51:26 网站建设

网站建设征集意见phpcmsv9手机网站源码

用Keil5和51单片机打造“软PLC”:低成本工业控制的实战之路 你有没有遇到过这样的场景? 一个简单的启停控制逻辑,却要花几百甚至上千元买一台品牌PLC;修改一段程序还得打开专用梯形图软件,连个变量名都不能自定义&am…

张小明 2026/1/13 23:04:26 网站建设