news 2026/8/2 3:01:13

Cesium中实现燕尾箭头、双向箭头等绘制

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Cesium中实现燕尾箭头、双向箭头等绘制

概要

Cesium中已经自带了多种形状的绘制,但是对于一些特殊的形状,需要我们自行定义。形状都是由点、线、面组成,对于复杂的图形其实可以拆解成多个简易形状组合而成。比如箭头可以看出是三角形和长方形的组合,但是这样做的话绘制的代码可能也会变复杂。所以,还是用点位直接描述最好,当然也可以用顶点描述。此处就用粗箭头来分析,如下图

其中,红色的点表示鼠标的点位,称为控制点,蓝色的则是形状点。分成控制点和形状点的目的是为了再次编辑的需要,比如方向错了,可以拖拽控制点编辑。当控制点达到两个时,以第一个点作为参考点,1号形状点就在控制点的正上方,7号形状点则在正下方,依次类推3、4、5号形状点,我们以1号控制点画一个圆,即可计算3、5号形状点的夹角。此种方法需要设定一些参数辅助,比如:箭头的夹角、长度等等,这些参数也可以让形状变得更灵活。如果webgl还行,可以直接用顶点构建自定义的Primitive。等有时间,准备把visio里的大部分图形实现一遍。因为用过Openlayers,里面的图形基本都可以总结为边框+填充,但是Cesium中Outline并不是那么容易,所以设计上均是参考Openlayers里面的Draw

效果

Cesium中实现燕尾箭头、双向箭头等绘制

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/8/1 10:24:18

26、Linux脚本编程与账户安全基础

Linux脚本编程与账户安全基础 1. 条件表达式的使用 脚本语言支持多种类型的条件表达式,这些表达式能让脚本根据特定条件(通常是变量的值)执行不同的操作。常见的使用条件表达式的命令是 if ,它能让系统根据某个条件是否为真来执行两个操作中的一个。 if 关键字后的条…

作者头像 李华
网站建设 2026/8/1 14:07:08

SQL必会必知整理-10-汇总函数

10.1 聚集函数 聚集函数是运行在行组上,计算和返回单个值的函数。 SQL聚集函数 函数 说明 AVG() 返回某列的平均值 COUNT() 返回某列的行数 MAX() 返回某列的最大值 MIN() 返回某列的最小值 SUM() 返回某列值之和 10.1.1 AVG()函数: AVG(…

作者头像 李华
网站建设 2026/8/1 5:33:37

PocoEmit遥遥领先于AutoMapper之循环引用

一、什么是循环引用循环引用就是类型相互依赖1. 比如A类有B类的属性,B类也有A类的属性这有什么问题呢?编写生成A的代码需要遍历A的所有属性构造B类型属性是A代码的一部分,B代码又含有A类型属性这就是一个编译死循环2. 其他循环引用的例子链表结构只有一个类型也是类型循环引用…

作者头像 李华
网站建设 2026/8/1 23:56:16

如何设计大数据数仓中的 Code Reference

在大数据数据仓库(Data Warehouse)的建设过程中,Code Reference(代码参考表或编码映射表) 是一个常被忽视但极为关键的组件。它用于统一管理业务系统中使用的各类编码、枚举值和状态码,确保数据在不同系统之…

作者头像 李华
网站建设 2026/8/1 13:42:05

【毕业设计】基于 SpringBoot+Vue 的校园论坛微信小程序的设计与实现基于springboot+微信小程序的校园活动管理系统设计与实现(源码+文档+远程调试,全bao定制等)

博主介绍:✌️码农一枚 ,专注于大学生项目实战开发、讲解和毕业🚢文撰写修改等。全栈领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围:&am…

作者头像 李华
网站建设 2026/8/1 20:04:41

【毕业设计】基于springboot+微信小程序的应急救援小能手软件系统的设计与实现(源码+文档+远程调试,全bao定制等)

博主介绍:✌️码农一枚 ,专注于大学生项目实战开发、讲解和毕业🚢文撰写修改等。全栈领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围:&am…

作者头像 李华