matlab下在空间任意位置绘制圆柱

本文介绍如何在MATLAB环境下,基于给定的圆心坐标和半径,利用surf函数在3D空间任意位置绘制圆柱。通过计算圆柱高度向量和正交基,转换为绝对坐标实现绘制。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

参考链接:https://blog.csdn.net/weixin_44492796/article/details/88583536

绘制圆柱需要提供上底面和下底面的圆心的绝对坐标。以及半径。通过得到圆柱高的向量,然后通过null函数,得到正交基,获得相对坐标系,首先计算出圆柱相对坐标,之后通过坐标变换法获得圆柱两底面的绝对坐标。之后通过surf函数绘制。

%绘制圆柱
%需要知道中轴线线段的位置,以及圆筒的半径
%中轴线两端点的坐标,圆柱的高度。
obstracle_R=5;
obstracle_L_center=[10 70 0];
obstracle_H_center=[10 10 40];

 
%建立底面圆心所在的坐标系
Vector=obstracle_H_center-obstracle_L_center;
obstracle_hight=norm(Vector);
CZ=Vector/norm(Vector);
CZout=null(CZ);
CX=CZout(:,1);
CY=CZout(:,2);
CZ=CZ';
Trans=[[CX CY CZ obstracle_L_center'];0 0 0 1];
Lx=zeros(2,51);
Ly=Lx;
Lz=Lx;
 
for i=1:50
   Lx(1,i)=obstracle_R*cos(i*2*pi/50);
   Ly(1,i)=obstracle_R*sin(i*2*pi/50);
   Lz(2,i)=obstracle_hight;
   Lz(1,i)=0;
end
Lx(1,51)=Lx(1,1);
Ly(1,51)=Ly(1,1);
Lz(1,51)=0;
Lz(2,51
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值