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

Cad求多段线中心点(顶点平均值) C#

using Autodesk.AutoCAD.DatabaseServices;

using Autodesk.AutoCAD.Geometry;

 

namespace PolylineUtility

{

    public static class PolylineHelper

    {

        /// <summary>

        /// 计算多段线顶点坐标的平均值(XYZ三维坐标)

        /// </summary>

        /// <param name="polyline">目标多段线对象</param>

        /// <returns>顶点坐标平均值的Point3d对象(顶点数为0时返回原点(0,0,0))</returns>

        /// <exception cref="ArgumentNullException">当输入的polyline为null时抛出</exception>

        public static Point3d GetVertexAverage(this Polyline polyline)

        {

            // 验证输入对象非空

            if (polyline == null)

                throw new ArgumentNullException(nameof(polyline), "输入的多段线对象不能为null");

 

            int vertexCount = polyline.NumberOfVertices;

            if (vertexCount == 0)

                return Point3d.Origin; // 无顶点时返回原点

 

            double totalX = 0, totalY = 0, totalZ = 0;

 

            // 遍历所有顶点并累加坐标

            for (int i = 0; i < vertexCount; i++)

            {

                Point3d vertex = polyline.GetPoint3dAt(i);

                totalX += vertex.X;

                totalY += vertex.Y;

                totalZ += vertex.Z; // 包含Z坐标,支持三维多段线

            }

 

            // 计算平均值

            double avgX = totalX / vertexCount;

            double avgY = totalY / vertexCount;

            double avgZ = totalZ / vertexCount;

 

            return new Point3d(avgX, avgY, avgZ);

        }

    }

}

http://www.xdnf.cn/news/175195.html

相关文章:

  • 利用脚本搭建私有云平台,部署云平台,发布云主机并实现互连和远程连接
  • Arduino 入门学习笔记(五):KEY实验
  • 3G大一下安卓考核题解
  • 多节点同步协同电磁频谱监测任务分配方法简要介绍
  • CDA Edit 的设计
  • 【C到Java的深度跃迁:从指针到对象,从过程到生态】第四模块·Java特性专精 —— 第十五章 泛型:类型系统的元编程革命
  • 编译原理实验 之 Tiny C语言编译程序实验 语法分析
  • 量子力学:量子通信
  • 人工智能时代的网络安全威胁
  • 全自动部署到远程服务器
  • 8.0 西门子PLC的S7通讯解析
  • 欧空局的P 波段雷达卫星即将升空
  • python pyplot 输出支持中文
  • Linux常用命令23——usermod
  • 关于堆栈指针的那些事 | bootloader 如何跳转app
  • react的 Fiber 节点的链表存储
  • 学生公寓限电模块控制柜是如何实现智能限电功能?
  • 【八股消消乐】发送请求有遇到服务不可用吗?如何解决?
  • 项目代码生成工具
  • 【技术追踪】基于扩散模型的脑图像反事实生成与异常检测(TMI-2024)
  • 【计算机视觉】CV实战项目- Four-Flower:基于TensorFlow的花朵分类实战指南
  • HarmonyOS NEXT:多设备的自由流转
  • 前端Vue项目处理跨域请求问题解决方案(后端未加cors),前端调后端
  • 深入探索Python Pandas:解锁数据分析的无限可能
  • go语言八股文(四)
  • WGS84(GPS)、火星坐标系(GCJ02)、百度地图(BD09)坐标系转换Java代码
  • 电池管理系统
  • Linux文件管理(3)
  • SpringMVC 静态资源处理 mvc:default-servlet-handler
  • 新增29个专业,科技成为未来主赛道!