Ceisum 计算向量夹角及垂足

最近在写一个动态箭头的功能时用到了垂足的计算。

知道空间三个点的坐标,计算一个点到另一条边的垂足坐标,通过这个垂足坐标确定和点的连线,计算出方向用来做动画效果。

 如图就是计算点D的坐标。

先说下原理及步骤:

1、建立空间向量CA、CB向量

2、计算CB向量的单位向量。

3、计算向量的夹角。

4、计算CA向量在CB向量上投影的长度。

5、计算出D点坐标

具体代码如下:

// 计算垂足坐标
  computeCZ: function (p1, p2, p3) {
    var c1 = Cesium.Cartesian3.subtract(p2, p1, new Cesium.Cartesian3());
    var c2 = Cesium.Cartesian3.subtract(p3, p1, new Cesium.Cartesian3());
    var angle = Cesium.Cartesian3.angleBetween(c1, c2);
    var dis = Cesium.Cartesian3.distance(p1, p3);
    dis = dis * Math.cos(angle);
    var nor = Cesium.Cartesian3.normalize(c1, new Cesium.Cartesian3());
    var newC = Cesium.Cartesian3.multiplyByScalar(nor, dis, new Cesium.Cartesian3());

    var res = Cesium.Cartesian3.add(newC, p1, new Cesium.Cartesian3());

    return res;
  }

 很久没维护csdn了 先说个不好意思,大家有不懂的可以给我留言或者这几私信我、加我都行!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值