当前位置: 首页 > news >正文

Matlab之已知2点绘制长度可定义的射线

目的:在笛卡尔坐标系中,已知两个点的位置,绘制过这两点的射线。同时射线的长度可以自定义。

一、函数的参数说明

输入参数:

PointA:射线的起点;

PointB:射线过的零一点;

Length:射线的长度;

theta:射线的旋转变换角度;

color:显示的射线颜色。

二、函数的Matlab代码

%% 绘制直线:已知2点的坐标,绘制过2点的自定义长度的直线
function DrawLine(PointA,PointB,Length,theta,color)
theta=theta+generate_gaussian_noise_with_variance(1, 1.5);startPoint=PointA;
% 计算向量差
vector = PointB - PointA;
% 归一化向量,方向向量
direction_vector = vector / norm(vector);% direction_vector 现在是表示P1到P2方向的单位向量% 旋转方向向量
% 旋转矩阵
R = [cos(theta*pi/180), -sin(theta*pi/180);sin(theta*pi/180),  cos(theta*pi/180)]; 
% 旋转方向向量
v_rotated = R * direction_vector';% 定义一个足够大的长度来表示无限长直线
endPoint = PointA + Length * v_rotated'; 
% 绘制直线
line([startPoint(1), endPoint(1)], [startPoint(2), endPoint(2)], 'Color', color, 'LineWidth', 2);
hold onend

三、绘制的实例

绘制一条射线,起点(4,3),过点(7,9),长度10,旋转角度0度,颜色红色。结果如下:

http://www.lryc.cn/news/323554.html

相关文章:

  • 虚拟机安装Linux系统,FinalShell远程连接Linux
  • MacOS Xcode 使用LLDB调试Qt的 QString
  • C/C++代码性能优化——编程实践
  • JVM—内存可见性
  • VScode手动安装vsix格式插件,提示安装插件与code版本不兼容问题
  • K8S Storage
  • Day54-nginx限速-访问日志-错误日志精讲
  • SQL经典面试题
  • Java基础知识总结(14)
  • MacOS - GCC 版本升级解决方案
  • 小程序绕过 sign 签名
  • 【Canvas与艺术】绘制动态太极图
  • Llama 2 模型
  • SQLiteC/C++接口详细介绍sqlite3_stmt类(十一)
  • 【理解机器学习算法】之Clustering算法(Agglomerative Clustering)
  • 千帆AppBuilder开发参考-应用API调用说明
  • python自定义日历库,与对应calendar库函数功能基本一致
  • css3鼠标悬停图片特效,图片悬停效果源码
  • 使用CSS3画出一个叮当猫HTML源码
  • Spring Boot 自动化单元测试类的编写过程
  • 复试专业前沿问题问答合集8-3——RNN、Hadoop、GPT大语言模型
  • 序列的使用
  • golang kafka sarama 源码解析
  • Flutter知识点整理
  • 现代游戏引擎架构
  • 深度学习:复杂工业场景下的复杂缺陷检测方法
  • CSDN个人简介优化 html font属性
  • 从哈希桶角度看 unordered_map 与 unordered_set 的实现
  • 飞天使-k8s知识点27-kubernetes温故知新2-deployment
  • 手机网页关键词视频爬虫采集软件可导出视频分享链接|视频无水印批量下载工具