您的位置:首页 > 文旅 > 旅游 > 杭州专业制作网站_微信小程序功能介绍_深圳广告公司排名_网红推广接单平台

杭州专业制作网站_微信小程序功能介绍_深圳广告公司排名_网红推广接单平台

2024/10/7 0:14:57 来源:https://blog.csdn.net/qq_42887663/article/details/142382924  浏览:    关键词:杭州专业制作网站_微信小程序功能介绍_深圳广告公司排名_网红推广接单平台
杭州专业制作网站_微信小程序功能介绍_深圳广告公司排名_网红推广接单平台

文章目录

  • 问题描述
  • 解决方法
  • 完整代码


问题描述

因为最近在做无人机的一个项目,所以需要画出无人机的轨迹,然后再提取特征值,我这里在计算夹角的时候发现为什么在视觉上明明看的是钝角但是实际计算出来却是锐角的角度。
如下图所示,看起来就是一个钝角,但是计算的结果始终是锐角。
在这里插入图片描述

解决方法

后来去请教了一下师姐,才发现是因为向量的方向问题,我想要计算的是上面这一种形式,但是我按照我的写法实际上是下面那一种形式。
改正之前的写法:

vec1 = [x(2)-x(1),y(2)-y(1),z(2)-z(1)];
vec2 = [x(3)-x(2),y(3)-y(2),z(3)-z(2)];cos_angle =  dot(vec1 ,vec2)/(norm(vec1)*norm(vec2));
angle = acosd(cos_angle);

改正之后的写法:

vec1 = [x(1)-x(2),y(1)-y(2),z(1)-z(2)]; %更改了这里
vec2 = [x(3)-x(2),y(3)-y(2),z(3)-z(2)];cos_angle =  dot(vec1 ,vec2)/(norm(vec1)*norm(vec2));
angle = acosd(cos_angle);

结果就是钝角了,不得不说,还是师姐更厉害啊。
在这里插入图片描述

完整代码

clear;
clc;x %yourData
y %yourData
z %yourDatavec1 = [x(1)-x(2),y(1)-y(2),z(1)-z(2)];
vec2 = [x(3)-x(2),y(3)-y(2),z(3)-z(2)];cos_angle =  dot(vec1 ,vec2)/(norm(vec1)*norm(vec2));
angle = acosd(cos_angle);plot3(x, y, z, '-o', 'LineWidth', 1.5);  % 连续点迹绘制轨迹
hold on;

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com