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

ArcGIS Pro SDK (九)几何 9 立方贝塞尔线段

ArcGIS Pro SDK (九)几何 9 立方贝塞尔线段

文章目录

  • ArcGIS Pro SDK (九)几何 9 立方贝塞尔线段
    • 1 构建立方贝塞尔线段 - 从坐标
    • 2 构建立方贝塞尔线段 - 从地图点
    • 3 构造立方贝塞尔线段 - 从映射点的枚举
    • 4 立方贝塞尔线段生成器属性
    • 5 立方贝塞尔线段属性
    • 6 构造折线 - 从立方贝塞尔线段

环境:Visual Studio 2022 + .NET6 + ArcGIS Pro SDK 3.0

1 构建立方贝塞尔线段 - 从坐标

// 使用 builderEx 的便捷方法或使用 builderEx 构造函数。MapPoint startPt = MapPointBuilderEx.CreateMapPoint(1.0, 1.0, 3.0);
MapPoint endPt = MapPointBuilderEx.CreateMapPoint(2.0, 2.0, 3.0);Coordinate2D ctrl1Pt = new Coordinate2D(1.0, 2.0);
Coordinate2D ctrl2Pt = new Coordinate2D(2.0, 1.0);// BuilderEx 的便捷方法不需要在 MCT 上运行
CubicBezierSegment bezier = CubicBezierBuilderEx.CreateCubicBezierSegment(startPt, ctrl1Pt, ctrl2Pt, endPt, SpatialReferences.WGS84);// 不使用空间参考系
bezier = CubicBezierBuilderEx.CreateCubicBezierSegment(startPt, ctrl1Pt, ctrl2Pt, endPt);// builderEx 的构造函数不需要在 MCT 上运行
CubicBezierBuilderEx cbbEx = new CubicBezierBuilderEx(startPt, ctrl1Pt, ctrl2Pt, endPt);
bezier = cbbEx.ToSegment() as CubicBezierSegment;// 另一种方式
cbbEx = new CubicBezierBuilderEx(startPt, ctrl1Pt.ToMapPoint(), ctrl2Pt.ToMapPoint(), endPt);
bezier = cbbEx.ToSegment() as CubicBezierSegment;

2 构建立方贝塞尔线段 - 从地图点

// 使用 builderEx 的便捷方法或使用 builderEx 构造函数。MapPoint startPt = MapPointBuilderEx.CreateMapPoint(1.0, 1.0, SpatialReferences.WGS84);
MapPoint endPt = MapPointBuilderEx.CreateMapPoint(2.0, 2.0, SpatialReferences.WGS84);MapPoint ctrl1Pt = MapPointBuilderEx.CreateMapPoint(1.0, 2.0, SpatialReferences.WGS84);
MapPoint ctrl2Pt = MapPointBuilderEx.CreateMapPoint(2.0, 1.0, SpatialReferences.WGS84);// BuilderEx 的便捷方法不需要在 MCT 上运行
CubicBezierSegment bezier = CubicBezierBuilderEx.CreateCubicBezierSegment(startPt, ctrl1Pt, ctrl2Pt, endPt);// builderEx 的构造函数不需要在 MCT 上运行
CubicBezierBuilderEx cbbEx = new CubicBezierBuilderEx(startPt, ctrl1Pt, ctrl2Pt, endPt);
bezier = cbbEx.ToSegment() as CubicBezierSegment;

3 构造立方贝塞尔线段 - 从映射点的枚举

// 使用 builderEx 的便捷方法或使用 builderEx 构造函数。MapPoint startPt = MapPointBuilderEx.CreateMapPoint(1.0, 1.0, SpatialReferences.WGS84);
MapPoint endPt = MapPointBuilderEx.CreateMapPoint(2.0, 2.0, SpatialReferences.WGS84);MapPoint ctrl1Pt = MapPointBuilderEx.CreateMapPoint(1.0, 2.0, SpatialReferences.WGS84);
MapPoint ctrl2Pt = MapPointBuilderEx.CreateMapPoint(2.0, 1.0, SpatialReferences.WGS84);List<MapPoint> listMapPoints = new List<MapPoint>();
listMapPoints.Add(startPt);
listMapPoints.Add(ctrl1Pt);
listMapPoints.Add(ctrl2Pt);
listMapPoints.Add(endPt);// BuilderEx 的便捷方法不需要在 MCT 上运行
CubicBezierSegment bezier = CubicBezierBuilderEx.CreateCubicBezierSegment(listMapPoints);// builderEx 的构造函数不需要在 MCT 上运行
CubicBezierBuilderEx cbbEx = new CubicBezierBuilderEx(listMapPoints);
bezier = cbbEx.ToSegment() as CubicBezierSegment;

4 立方贝塞尔线段生成器属性

// 获取贝塞尔曲线的控制点CubicBezierBuilderEx cbbEx = new CubicBezierBuilderEx(bezierSegment);
MapPoint startPtEx = cbbEx.StartPoint;
Coordinate2D ctrlPt1Ex = cbbEx.ControlPoint1;
Coordinate2D ctrlPt2Ex = cbbEx.ControlPoint2;
MapPoint endPtEx = cbbEx.EndPoint;// 或使用 QueryCoords 方法
cbbEx.QueryCoords(out startPtEx, out ctrlPt1Ex, out ctrlPt2Ex, out endPtEx);

5 立方贝塞尔线段属性

// 获取贝塞尔曲线的控制点
CubicBezierSegment cb = CubicBezierBuilderEx.CreateCubicBezierSegment(bezierSegment);
MapPoint startPt = cb.StartPoint;
Coordinate2D ctrlPt1 = cb.ControlPoint1;
Coordinate2D ctrlPt2 = cb.ControlPoint2;
MapPoint endPt = cb.EndPoint;bool isCurve = cb.IsCurve;
double len = cb.Length;

6 构造折线 - 从立方贝塞尔线段

Polyline polyline = PolylineBuilderEx.CreatePolyline(bezierSegment);

相关文章:

ArcGIS Pro SDK (九)几何 9 立方贝塞尔线段

ArcGIS Pro SDK &#xff08;九&#xff09;几何 9 立方贝塞尔线段 文章目录 ArcGIS Pro SDK &#xff08;九&#xff09;几何 9 立方贝塞尔线段1 构建立方贝塞尔线段 - 从坐标2 构建立方贝塞尔线段 - 从地图点3 构造立方贝塞尔线段 - 从映射点的枚举4 立方贝塞尔线段生成器属性…...

c语言之 *指针与 **指针

*n 一级指针&#xff1a; &nn*n自身地址指向地址指向地址值 **s 二级指针&#xff1a; &ss*s**s自身地址一级指针地址一级指针指向地址一级指针指向地址值 CHILD *walk, *next, *tmp_child, **scan;next walk->next scan &walk->next; while (*scan) { …...

navicat 导入 sql 遇到的问题

错误1 [Err] 1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near &#xfeff;SET FOREIGN_KEY_CHECKS 0;DROP TABLE IF EXISTS tmp_tables; CREATE TABLE at line 1 [Err] &…...

压缩pdf大小的方法 指定大小软件且清晰

在数字化时代&#xff0c;pdf文件因其良好的兼容性和稳定性&#xff0c;已成为文档分享的主流格式。然而&#xff0c;高版本的pdf文件往往体积较大&#xff0c;传输和存储都相对困难。本文将为您详细介绍几种简单有效的方法&#xff0c;帮助您减小pdf文件的大小&#xff0c;让您…...

PHP上门按摩专业版防东郊到家系统源码小程序

&#x1f486;‍♀️【尊享级体验】上门按摩专业版&#xff0c;告别东郊到家&#xff0c;解锁全新放松秘籍&#xff01;&#x1f3e0;✨ &#x1f525;【开篇安利&#xff0c;告别传统束缚】&#x1f525; 亲们&#xff0c;是不是厌倦了忙碌生活中的疲惫感&#xff1f;想要享…...

从微软发iPhone,聊聊企业设备管理

今天讲个上周的旧闻&#xff0c;微软给员工免费发iPhone。其实上周就有很多朋友私信问我&#xff0c;在知乎上邀请我回答相关话题&#xff0c;今天就抽点时间和大家一起聊聊这事。我不想讨论太多新闻本身&#xff0c;而是更想聊聊事件的主要原因——微软企业设备管理&#xff0…...

抖音/腾讯/百度ocpm深度回传如何操作?广告投放双出价的投放技巧?

要实现抖音、腾讯和百度的OCPM&#xff08;Optimized Cost Per Mille&#xff09;深度回传&#xff0c;可以通过借助第三方平台&#xff0c;例如&#xff08;转化宝&#xff09;实现广告数据精准回传&#xff0c;如此之外&#xff0c;在广告投放过程中还需要注重这些方面。 转化…...

DPKG(Debian / Ubuntu包管理工具)的深入探索与使用

DPKG&#xff08;Debian / Ubuntu包管理工具&#xff09;的深入探索与使用 在Linux世界中&#xff0c;特别是基于Debian及其衍生系统&#xff08;如Ubuntu&#xff09;的环境中&#xff0c;dpkg是管理Debian软件包&#xff08;.deb文件&#xff09;的核心工具。它不仅用于安装…...

Godot学习笔记2——GDScript变量与函数

Godot使用的编程语言是GDS&#xff0c;语法上与python有些类似。 一、代码编写界面 在新建的Godot项目中&#xff0c;点击“创建根节点”中的“其他节点”&#xff0c;选择“Node”。 点击场景界面右上角的绿色加号&#xff0c;路径处重新命名&#xff0c;模板选择“Empty”&…...

golang开发环境搭建与踩坑记录

文章目录 一、安装下载1、go环境2、ide 二、基本使用1、运行2、结构体与方法函数指针3、闭包4、指针5、map6、接口7、异常 三、包管理1、go mod语法2、项目下载所有依赖 一、安装下载 1、go环境 下载地址&#xff1a;https://go.dev/dl/ 或者&#xff1a;https://golang.goog…...

单机、集群、分布式服务器比较:

1. 单机服务器的瓶颈&#xff1a; 单机服务器&#xff1a;一台服务器独立运行一个工程所需的全部的业务模块 受限于服务器硬件资源&#xff0c;所承受用户并发量受限&#xff0c;32位linux操作系统最大并发量为两万任一模块的变动和修改&#xff0c;都会导致整个项目代码重新编…...

NoSql选择题解

1. (单选题)以下不属于ACID原则的是( )。 A. 相对性 B. 原子性 C. 隔离性 D. 持久性 正确答案: A :相对性; 2. (单选题)以下NoSQL数据库中&#xff0c;哪个是内存数据库&#xff08;&#xff09;。 A. Bigtable B. Redis C. Hbase D. MongoDB 正确答案: B :Redis; …...

国内新能源汽车芯片自给,承认差距,任重道远

【科技明说 &#xff5c; 科技热点关注】 据近日工信部电子五所元器件与材料研究院高级副院长罗道军表示&#xff0c;中国拥有最大的新能源车产能&#xff0c;芯片用量也是越来越多。但是芯片的自给率目前不到10%&#xff0c;是结构性的短缺。 中国拥有最大新能源车产能&#…...

反爬虫策略中的IP地址轮换如何实现?挑战与对策

当今互联网时代&#xff0c;各类网站、网络平台背后隐藏着大量数据&#xff0c;广告数据收集、市场数据收集都需要依托爬虫技术&#xff0c;但很多网站通过反爬虫技术限制或屏蔽爬虫的访问&#xff0c;这给数据收集带来不小的挑战。 为了规避这些反爬虫策略&#xff0c;开发人…...

AUTOSAR CAN网络Bus Load Reduction Mechanism

1. Bus Load Reduction Mechanism有什么用 根据AUTOSAR CanNM规范,NM PDU的发送周期由参数CanNmMsgCycleTime决定,并且属于同一个网络簇的所有NM节点该参数必须相同。如果不采取任何行动,这将导致总线负载问题,这取决于网络管理集群成员的数量。即使通过节点特定的定时参数…...

【LeetCode力扣】007. 整数反转(Python)

给你一个 32 位的有符号整数 x &#xff0c;返回将 x 中的数字部分反转后的结果。 如果反转后整数超过 32 位的有符号整数的范围 [−231, 231 − 1] &#xff0c;就返回 0。 假设环境不允许存储 64 位整数&#xff08;有符号或无符号&#xff09;。 示例 1&#xff1a; 输入…...

大数据之写入Doris数据问题

1. 解决Key columns should be a ordered prefix of the schema. KeyColumns[1] (starts from zero) is xxx, but 背景 create table if not exists XXX ( fathercorp varchar(50), id decimalv3(38,0) ) ENGINEOLAP UNIQUE KEY(id) COMMENT xxxx DISTRIBUTED BY HASH(id) BUC…...

HTML+echarts.js实现的炫酷金色风格可视化组件

模板下载地址&#xff1a; 炫酷金色风格可视化组件 (bootstrapmb.com)https://www.bootstrapmb.com/item/14888 一款炫酷金色风格可视化组件&#xff0c;统计图表使用Echarts.js&#xff0c;整体风格采用金黄色看起来很大气&#xff0c;设计是通用型的&#xff0c;可以用作任…...

【BUG】已解决: KeyboardInterrupt

已解决&#xff1a; KeyboardInterrupt 欢迎来到英杰社区https://bbs.csdn.net/topics/617804998 欢迎来到我的主页&#xff0c;我是博主英杰&#xff0c;211科班出身&#xff0c;就职于医疗科技公司&#xff0c;热衷分享知识&#xff0c;武汉城市开发者社区主理人 擅长.net、C…...

iOS——MRC与ARC以及自动释放池深入底层学习

MRC与ARC再回顾 在前面&#xff0c;我们简单学了MRC与ARC。MRC指手动内存管理&#xff0c;需要开发者使用retain、release等手动管理对象的引用计数&#xff0c;确保对象在必要时被释放。ARC指自动内存管理&#xff0c;由编译器自动管理对象的引用计数&#xff0c;开发者不需要…...

华为MateBook D 2018 BIOS隐藏选项实战:手动解锁TPM2.0迎战Win11

1. 为什么需要手动解锁TPM2.0 去年Windows 11正式发布时&#xff0c;很多华为MateBook D 2018用户都遇到了一个尴尬问题&#xff1a;明明硬件配置完全达标&#xff0c;却因为BIOS里找不到TPM2.0开关而无法升级。我当时也卡在这个环节整整两天&#xff0c;直到发现原来TPM功能被…...

告别云服务器:手把手教你用QEMU在Ubuntu 18.04上搭建专属内核调试环境

从零构建QEMU内核调试环境&#xff1a;Ubuntu 18.04下的UEFI开发实战手册 当深夜的调试灯亮起&#xff0c;你是否还在为云服务器高昂的费用和网络延迟苦恼&#xff1f;本文将带你用一台普通Ubuntu机器&#xff0c;打造媲美物理机的内核开发环境。不同于常规教程&#xff0c;我…...

3分钟掌握罗技鼠标宏:PUBG自动压枪脚本终极指南

3分钟掌握罗技鼠标宏&#xff1a;PUBG自动压枪脚本终极指南 【免费下载链接】logitech-pubg PUBG no recoil script for Logitech gaming mouse / 绝地求生 罗技 鼠标宏 项目地址: https://gitcode.com/gh_mirrors/lo/logitech-pubg 还在为《绝地求生》中难以控制的枪械…...

Degrees of Lewdity 本地化实践指南

Degrees of Lewdity 本地化实践指南 Degrees of Lewdity 作为一款开源游戏&#xff0c;其本地化实践是打破语言壁垒、实现文化适配的关键环节。本文将从本地化价值定位、环境适配、执行蓝图、故障诊断、进阶优化到生态导航&#xff0c;为零基础用户提供一套完整的本地化技术方…...

【Flutter for open harmony 】Flutter三方库Dio网络请求+熬夜记录列表的鸿蒙化适配与实战指南

【Flutter for open harmony 】Flutter三方库Dio网络请求熬夜记录列表的鸿蒙化适配与实战指南 欢迎加入开源鸿蒙跨平台社区&#xff1a;https://openharmonycrossplatform.csdn.net 大家好&#xff0c;我是ShineQiu&#xff0c;上海某高校计算机科学与技术专业大二在读学生。这…...

LLM Workflow Engine:命令行AI工作流引擎的架构与实战

1. 项目概述&#xff1a;从命令行到工作流&#xff0c;一个LLM引擎的进化如果你和我一样&#xff0c;是个重度命令行用户&#xff0c;同时又对大型语言模型&#xff08;LLM&#xff09;的潜力着迷&#xff0c;那你肯定经历过这种纠结&#xff1a;想快速用GPT-4验证一个想法&…...

企业智能体架构解析:从LLM集成到自动化管理实践

1. 项目概述&#xff1a;一个面向企业管理的智能体架构最近在开源社区里&#xff0c;我注意到一个挺有意思的项目&#xff1a;kernelshreyak/company-manager-agent。光看这个名字&#xff0c;你可能会联想到一个简单的任务管理工具&#xff0c;但深入研究后&#xff0c;我发现…...

NodeMCU固件烧录终极指南:告别命令行,5分钟搞定ESP8266刷机!

NodeMCU固件烧录终极指南&#xff1a;告别命令行&#xff0c;5分钟搞定ESP8266刷机&#xff01; 【免费下载链接】nodemcu-pyflasher Self-contained NodeMCU flasher with GUI based on esptool.py and wxPython. 项目地址: https://gitcode.com/gh_mirrors/no/nodemcu-pyfl…...

IJPay实战:一站式解决微信APP支付签名与回调难题

1. 为什么选择IJPay解决微信APP支付难题 第一次接触微信APP支付时&#xff0c;我被官方文档里密密麻麻的参数列表吓到了。特别是签名验证环节&#xff0c;光是参数顺序错误就让我调试了整整两天。后来发现团队里老张的项目接支付接口特别快&#xff0c;追问之下才知道用了IJPay…...

从多媒体到HPC:聊聊IBM GPFS(Spectrum Scale)那些鲜为人知的“前世今生”

从多媒体到HPC&#xff1a;IBM GPFS的技术进化与商业智慧 1993年&#xff0c;当第一代数字视频编辑系统还在为处理480p分辨率视频而焦头烂额时&#xff0c;IBM实验室里的一组工程师正在解决一个更根本的问题——如何让多个工作站同时高效访问同一组视频素材。这个看似简单的需求…...