matlab 绘制任意方向和位置的空间圆锥体

function cone3(X1,X2,r,color)
%一个简单的例子:cone3([1 2 3],[7 8 9],1,'b');%两个空间点位置,圆锥底面半径,颜色
% 圆锥的高度
length_cyl=norm(X2-X1);
[x,y,z]=cylinder(linspace(r,0,50),100);
z=z*length_cyl;
%绘制圆锥底面
hold on;
EndPlate1=fill3(x(1,:),y(1,:),z(1,:),'r');
Cylinder=mesh(x,y,z);
%计算圆锥体旋转的角度
unit_V=[0 0 1];
angle_X1X2=acos(dot( unit_V,(X2-X1) )/( norm(unit_V)*norm(X2-X1)) )*180/pi;
%计算旋转轴
axis_rot=cross(unit_V,(X2-X1));
%将圆锥体旋转到期望方向
if angle_X1X2~=0 % Rotation is not needed if required direction is along Xrotate(Cylinder,axis_rot,angle_X1X2,[0 0 0])rotate(EndPlate1,axis_rot,angle_X1X2,[0 0 0])
end
%将圆锥体和底面挪到期望的位置
set(EndPlate1,'XData',get(EndPlate1,'XData')+X1(1))
set(EndPlate1,'YData',get(EndPlate1,'YData')+X1(2))
set(EndPlate1,'ZData',get(EndPlate1,'ZData')+X1(3))
set(Cylinder,'XData',get(Cylinder,'XData')+X1(1))
set(Cylinder,'YData',get(Cylinder,'YData')+X1(2))
set(Cylinder,'ZData',get(Cylinder,'ZData')+X1(3))
% 设置圆锥体的颜色
set(Cylinder,'FaceColor',color)
set(EndPlate1,'FaceColor',color)
set(Cylinder,'EdgeAlpha',0)
set(EndPlate1,'EdgeAlpha',0)
axis equal;
view(3)
end

matlab 绘制任意方向和位置的空间圆锥体相关推荐

  1. matlab绘制任意位置方位的圆锥

    1.前记: 使用surf函数实现指定顶点,圆锥半径,高度的圆锥. 2.代码 为了实现任意位置和方位,使用机器人系统工具箱函数getTransform计算机器人末端正运动的齐次矩阵结果并将其位置和方位赋 ...

  2. MATLAB绘制任意密度的球体并且绘制颜色

    使用MATLAB可以绘制各种几何体,赋予他们型状与颜色.这里主要附上如何绘制球体,并且任意绘制颜色. clc clear %假设两个模块之间接触点坐标为(x0,y0,z0),绘图主体模块球中心 %坐标 ...

  3. matlab 绘制椭圆锥波束指向示意图

    参考了matlab 绘制任意方向和位置的空间圆锥体中绘制圆锥的思路,在此基础上加了我需要的应用.就是绘制波束扫描示意图. 1 原理 根据波束宽度得到在归一化威力值上的弧长. 然后根据方位和俯仰向弧长产 ...

  4. Matlab 绘制空间任意方向圆柱体

    Matlab 绘制空间任意方向圆柱体 一 系统函数 Matlab本身自带了绘制圆柱体函数,如下: [X,Y,Z] = cylinder [X,Y,Z] = cylinder(r) [X,Y,Z] = ...

  5. 用matlab对称振子E面方向图,利用matlab绘制电基本振子e面方向图和空间立体方向图.doc...

    利用matlab绘制电基本振子e面方向图和空间立体方向图.doc 微波技术与天线实验报告学院:信电学院班级:通信2班姓名:学号:2014年4月29日1利用matlab绘制电基本振子E面方向图和空间立体 ...

  6. 使用Matlab绘制三维空间中的任意圆(参数方程/坐标转换)

    要实现的绘图效果: 问题分析: 首先,要明确定义三维空间中的圆需要哪些参数: 给定圆所在平面(空间中的平面可以用点法式给定,即给定平面上一点和平面在该点处的法向量) 给定圆心位置(三维空间中的点的坐标 ...

  7. plotcylinder matlab,Matlab在任意两点之间绘制三维圆柱

    Matlab在任意两点之间绘制三维圆柱 Matlab在任意两点之间绘制三维圆柱 此函数可能存在一些不足,请多多指教! function plotcylinder(u1,u2,color_a,r) L= ...

  8. 如何使用MATLAB对任意三维数据绘制三维曲面

    这段时间写论文,用到MATLAB绘制三维曲面,而由于三组数据是同样维度,不能直接使用mesh或者surf等绘图命令进行绘图,这时候怎么办呢? 方法:将两组数据运用拟合的方法得到关于第三组数据的回归方程 ...

  9. 计算机图形学实验二 《绘制任意斜率的直线》

    计算机图形学实验二 <绘制任意斜率的直线> 视频讲解地址 一.Bresenham算法 用视频讲会好点我之前也录过相关视频可以先凑合看 二.设计CLine类 之前也说了C++一个类是由源文件 ...

最新文章

  1. 为EditText输入框加上提示信息
  2. 利用ES6进行Promise封装总结
  3. 给数组里面的对象添加一个新的数据
  4. java: command not found_/bin/bash: java: command not found 问题解决
  5. Java进程占用CPU资源过多分析
  6. 全球44家机构,55位大佬,历时两年,打造最强NLG评测基准!
  7. 云联惠身份认证需要多长时间_欧盟REACH认证需要多长时间【周期、费用、有效期】...
  8. streaming接mysql数据库_[Spark streaming举例]-- 实时统计并且存储到mysql数据库中
  9. ITextSharp生成PDF
  10. 14005.xilinx移植spi版本flash
  11. 不是美工却依然想写出美丽的CSS该肿么办
  12. 设计模式--6大原则--依赖倒置原则
  13. 蓝桥杯竞赛C/C++组不支持C++11特性
  14. B00016 交换变量a和b的值
  15. 单片机各种通信协议详解
  16. linux 批量解压war,图文处理war包解压【搞定方式】
  17. 数分笔记整理22 - 数据处理项目 - 中国姓氏排行研究 房价影响因素挖掘
  18. Preparing for Exams(割线定理)
  19. 中基鸿业普通家庭如何理财
  20. 2D物理引擎--谁碰了我的奶酪

热门文章

  1. 7脚spi OLED屏幕改造成IIC屏幕
  2. 2022-2028年全球玻璃棉板收入年复合增长率CAGR为 5.0%
  3. app中的长连接与实现方式
  4. 白盒/黑盒/灰盒测试的区别
  5. ubuntu解压各种文件
  6. 谷歌又闹大乌龙!Jeff Dean参与的新模型竟搞错Hinton生日
  7. 实验4-1-12 黑洞数 (20 分)
  8. Jetson Agx Orin使用最正确的方式安装torch1.11.0,torchvision0.12.0,torchaudio0.11.0保姆级教程
  9. 可视化 | Echarts基础异步加载数据交互组件数据集
  10. 解耦java_工厂模式实现解耦