Cesium中的样条插值
阅读原文时间:2023年07月12日阅读:1

在cesium里,提供了三种样条插值方法,LinearSpline,CatmullRomSpline,HermiteSpline。
在具体的实例上,可以使用样条插值法利用已知的控制点,插值出一系列的点,用于平滑曲线,特别是在路径的追朔重演。
下面,我们分别介绍这三种样条插值的使用方法以及效果。

LinearSpline(线性样条)

线性样条从效果上看,是把所有控制点一一连线,并在连线上做定点取值

1、设置几个控制点,并添加到场景中,聚焦视角

  • var controls = [

  • Cesium.Cartesian3.fromDegrees(110, 10),

  • Cesium.Cartesian3.fromDegrees(111, 11),

  • Cesium.Cartesian3.fromDegrees(112, 9),

  • Cesium.Cartesian3.fromDegrees(114, 10),

  • Cesium.Cartesian3.fromDegrees(113, 8)

  • ];

  • for (var i = 0; i < controls.length; i++) {

  • viewer.entities.add({

  • position: controls[i],

  • point: {

  • color: Cesium.Color.RED,

  • pixelSize: 10

  • }

  • });

  • }

  • viewer.zoomTo(viewer.entities);

2、创建LinearSpline对象

  • var spline = new Cesium.LinearSpline({

  • times: [0.0, 0.25, 0.5, 0.75, 1],

  • points: controls

  • });

3、插值100个点

  • var positions = [];

  • for (var i = 0; i <= 100; i++) {

  • var cartesian3 = spline.evaluate(i / 100);

  • positions.push(cartesian3);

  • viewer.entities.add({

  • position: cartesian3,

  • point: {

  • color: Cesium.Color.YELLOW,

  • pixelSize: 6

  • }

  • });

  • }

4、将插值所有的点绘制成线

手机扫一扫

移动阅读更方便

阿里云服务器
腾讯云服务器
七牛云服务器

你可能感兴趣的文章