Cesium 自定义箭头坐标轴 圆坐标轴(一)

本文介绍了在Cesium中实现自定义箭头坐标轴和圆坐标轴的方法,包括利用矩阵运算创建primitive,通过调整材质、宽度和长度来绘制箭头坐标,以及通过获取坐标点并进行矩阵转换来绘制圆坐标。文章还提供了代码示例,并强调了坐标轴转换矩阵的重要性,为后续模型的平移和旋转操作奠定了基础。
摘要由CSDN通过智能技术生成

Cesium 自定义箭头坐标轴 圆坐标轴(一)

箭头坐标轴和圆坐标轴

为了实现Cesium 对模型的拖拽平移和旋转,需要以模型为中心建立箭头坐标轴(沿坐标轴方向移动)和圆坐标轴(沿圆弧方向旋转)。
效果展示

实现思路

利用Cesium的矩阵运算,创建primitive,操作矩阵实现各种坐标轴。箭头坐标轴比圆坐标轴简单很多,Cesium内置了箭头材质,更改材质即可。

绘制箭头坐标

Cesium中添加图形的两种方法,一种是entities,一种是primitives。后者更适合开发,主要用到modelmatrix属性。添加箭头可以理解为添加同一个坐标起点的本地沿坐标轴方向的三条箭头线。
宽度和长度可根据需求自己调节。主要更改material即可。

// 创建x方向的箭头
  var arrowx = viewer.entities.add({
   
    name:"arrowx",
    polyline:{
   
      positions:Cesium.Cartesian3.fromDegreesArrayHeights([
        lon,lat,hei,lon+0.00003,lat,hei]),
      width:25,
      arcType:Cesium.ArcType.NONE,
      material:new Cesium.PolylineArrowMaterialProperty(Cesium.Color.RED),
    },
  });

依次画出y、z坐标。

绘制圆坐标

绘制圆坐标的话,用primitive来画,要用到modelmatrix。用线画圆可以调节圆的宽度。可以创建圆后,拿到圆的坐标,再用线绘制。
绘制圆,granularity越小,密度越大。

  var circle = new Cesium.CircleOutlineGeometry({
   
    center:Cesium.Cartesian3.fromDegrees(lan,lat,height),
    radius:3.0,
    granularity:0.001
  }
评论 27
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值