SuperMap iClient3D for WebGL 场景美化之飞线

2024-02-25 08:38

本文主要是介绍SuperMap iClient3D for WebGL 场景美化之飞线,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

作者:Taco

前言

        之前有过一篇美化场景的文章,而那篇文章主要是通过添加各种各样的光源来实现的,先给整个场景一个环境光把场景的亮度调暗,再通过添加各式各样的光源(点光源,平行光源,聚光源)来使得场景看起来更加美观。但是这样的场景依然显得空落落的,空的区域还是占了很多。那么该加一些什么让场景看起来好看一些呢?

        在有些案例中会绘制一些向上移动的线条这里简称成飞线,用来添补上空荡的场景。从直观效果感觉,会比常规的场景更加的吸引一些眼球。显得更富有科技感,更加的炫酷!那么,这些飞线是如何实现的呢?

一,实现思路

        说到点线面的添加,其实第一个想法就是实体(entity),那么用实体能够实现这种效果么?当然!是可以的!官网的示例中有一个与我们最后想实现的效果是类似的,没错!它就是尾迹线!(http://support.supermap.com.cn:8090/webgl/examples/webgl/editor.html#airlinesTrailLines)只不过尾迹线是从一个地区向另一个地区的移动,而我们要实现的是从底部竖直向上的移动。实现的方法依然是类似的。

        那么具体实现的方法是什么呢?先来看下接口。

       需要使用到的接口就是 PolylineTrailMaterialProperty 尾迹线材质类。通过修改线条的材质信息让我们的线更加的美观。关于尾迹线的绘制之前有文章已经介绍过了可以通过这个链接去查看到(SuperMap iClient3D for WebGL教程(Entity)-PolylineGraphics_SuperMap技术控-CSDN博客)

二,实现代码

viewer.entities.add({ // 尾迹线polyline: {positions: Cesium.Cartesian3.fromDegreesArrayHeights([longitude, latitude, height, longitude, latitude,height + 500]),width: 4, // 线的宽度,像素为单位material: new Cesium.PolylineTrailMaterialProperty({ // 尾迹线材质color: Cesium.Color.fromCssColorString(rgbColor(1)), //给一个随机的颜色值trailLength: 0.18,period: 2.0})}});

这样我们就绘制除了一个尾迹线的效果,如果场景中需要的是单一的一种颜色,我们可以去修改它的color值,改成Cesium.Color.fromCssColorString("rgba(118, 233, 241, 1)")改成单色即可。而这里为了让场景更加的丰富多彩一些,给了随机的颜色值,rgbColor()。

function rgbColor(a) {var r = Math.floor(Math.random() * 256); //随机r的值var g = Math.floor(Math.random() * 256); //随机g的值var b = Math.floor(Math.random() * 256); //随机b的值if (a || a == 0) {return "rgba(" + r + "," + g + "," + b + "," + a + ")"} else {return "rgb(" + r + "," + g + "," + b + ")"}}

将随机的颜色值传回来就可以达到缤纷多彩的飞线效果啦。

三,实现效果

 

 

 

这篇关于SuperMap iClient3D for WebGL 场景美化之飞线的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/744948

相关文章

java中VO PO DTO POJO BO DO对象的应用场景及使用方式

《java中VOPODTOPOJOBODO对象的应用场景及使用方式》文章介绍了Java开发中常用的几种对象类型及其应用场景,包括VO、PO、DTO、POJO、BO和DO等,并通过示例说明了它... 目录Java中VO PO DTO POJO BO DO对象的应用VO (View Object) - 视图对象

Python中异常类型ValueError使用方法与场景

《Python中异常类型ValueError使用方法与场景》:本文主要介绍Python中的ValueError异常类型,它在处理不合适的值时抛出,并提供如何有效使用ValueError的建议,文中... 目录前言什么是 ValueError?什么时候会用到 ValueError?场景 1: 转换数据类型场景

python中的与时间相关的模块应用场景分析

《python中的与时间相关的模块应用场景分析》本文介绍了Python中与时间相关的几个重要模块:`time`、`datetime`、`calendar`、`timeit`、`pytz`和`dateu... 目录1. time 模块2. datetime 模块3. calendar 模块4. timeit

Hadoop企业开发案例调优场景

需求 (1)需求:从1G数据中,统计每个单词出现次数。服务器3台,每台配置4G内存,4核CPU,4线程。 (2)需求分析: 1G / 128m = 8个MapTask;1个ReduceTask;1个mrAppMaster 平均每个节点运行10个 / 3台 ≈ 3个任务(4    3    3) HDFS参数调优 (1)修改:hadoop-env.sh export HDFS_NAMENOD

EMLOG程序单页友链和标签增加美化

单页友联效果图: 标签页面效果图: 源码介绍 EMLOG单页友情链接和TAG标签,友链单页文件代码main{width: 58%;是设置宽度 自己把设置成与您的网站宽度一样,如果自适应就填写100%,TAG文件不用修改 安装方法:把Links.php和tag.php上传到网站根目录即可,访问 域名/Links.php、域名/tag.php 所有模板适用,代码就不粘贴出来,已经打

PostgreSQL核心功能特性与使用领域及场景分析

PostgreSQL有什么优点? 开源和免费 PostgreSQL是一个开源的数据库管理系统,可以免费使用和修改。这降低了企业的成本,并为开发者提供了一个活跃的社区和丰富的资源。 高度兼容 PostgreSQL支持多种操作系统(如Linux、Windows、macOS等)和编程语言(如C、C++、Java、Python、Ruby等),并提供了多种接口(如JDBC、ODBC、ADO.NET等

嵌入式技术的核心技术有哪些?请详细列举并解释每项技术的主要功能和应用场景。

嵌入式技术的核心技术包括处理器技术、IC技术和设计/验证技术。 1. 处理器技术    通用处理器:这类处理器适用于不同类型的应用,其主要特征是存储程序和通用的数据路径,使其能够处理各种计算任务。例如,在智能家居中,通用处理器可以用于控制和管理家庭设备,如灯光、空调和安全系统。    单用途处理器:这些处理器执行特定程序,如JPEG编解码器,专门用于视频信息的压缩或解压。在数字相机中,单用途

『功能项目』更换URP场景【32】

上一章已经将项目从普通管线升级到了URP管线 现在我们打开上一篇31项目优化 - 默认管线转URP的项目, 进入战斗场景 将Land的子级全部隐藏 将新的URP场景预制体拖拽至Land子级 对场景预制体完全解压缩 将Terrain拖拽至Land的直接子级 将Terrain设置为Land 与 静态Static 清除烘培 重新烘培 修改脚本:LoadRe

SuperMap iManger 单个镜像更新流程

1. 下载镜像 docker pull registry.cn-beijing.aliyuncs.com/supermap/common-dashboard-api:11.1.1-240802-amd64 label 没区分架构,在 x64 环境 pull arm64 镜像 通过 --platform=arm64 参数可以实现 docker pull mariadb:10.5.26

70-java write类应用场景

在Java中,我们可以使用java.io包中的FileWriter和BufferedWriter类来写入数据到文件。以下是一个简单的例子,展示了如何使用FileWriter和BufferedWriter来写入数据到文件: import java.io.BufferedWriter;import java.io.FileWriter;import java.io.IOException;pub