每日签到积分充值书码绑定

MATLAB技术论坛

 找回密码
 注册帐号

QQ登录

只需一步,快速开始

查看: 3337|回复: 4

[讨论] 【原创】Matlab中如何实现任意位置圆柱的绘制 [复制链接]

管理员

风雪夜归人

Rank: 30Rank: 30Rank: 30Rank: 30

签到天数: 12 天

[LV.3]偶尔看看II

UID
1
主题
1390
帖子
5053
积分
70501
威望
778
贝壳
53863
贡献
4889

管理团队 技术小组 原创先锋 宣传大使

发表于 2008-12-21 15:30:17 |显示全部楼层 | 百度  谷歌 |
在Matlab中绘制圆柱有专用的cylinder()函数,通过参数控制可以创建以(0,0)为圆心,高度为[0,1],半径为R的圆柱或变形圆柱

但是使用cylinder创建的圆柱都是以z轴为旋转对称轴,高度永远为1的简单圆柱

那我们如何创建一个有倾角,直径、对称轴、圆心等都可以直接定义的圆柱呢?或者直白点说,我如何通过两点加半径如何绘制一个圆柱或圆台

好下面我们分析下!!

管理员

风雪夜归人

Rank: 30Rank: 30Rank: 30Rank: 30

签到天数: 12 天

[LV.3]偶尔看看II

UID
1
主题
1390
帖子
5053
积分
70501
威望
778
贝壳
53863
贡献
4889

管理团队 技术小组 原创先锋 宣传大使

发表于 2008-12-21 15:39:07 |显示全部楼层

圆柱的平移和放缩

平移和放缩相对来简单很多,平移我们只要将x和y坐标加一个常数即可,放缩只要将z坐标乘以一个放大因子即可
  1. R=1;%半径
  2. a=2;%原点x坐标
  3. b=3;%原点y坐标
  4. h=4;%圆柱高度
  5. m=100;%分割线的条数
  6. [x,y,z]=cylinder(R,m);%创建以(0,0)为圆心,高度为[0,1],半径为R的圆柱
  7. x=x+a;%平移x轴
  8. y=y+b;%平移y轴,改为(a,b)为底圆的圆心
  9. z=h*z;%高度放大h倍
  10. mesh(x,y,z)%重新绘图
复制代码

如果对Matlab绘图学的较好的,对圆柱绘图本质认识比较深的网友,可以看看下面的函数,它没有用到cylinder函数
  1. function cylinder2(x0,R,H,m,n)
  2. %绘制任意位置、大小的圆柱,但是对称轴平行与z轴
  3. %x0=[a,b]圆心位置
  4. %R圆柱半径
  5. %H=[h1,h2]圆柱高度,h1为底圆的z坐标,h2为上圆的z坐标
  6. %m圆方向的等分数
  7. %n高度方向的等分数
  8. %
  9. %by dynamic
  10. %all rights reserved by www,matlabsky.cn

  11. a=x0(x);b=x0(2);h1=H(1);h2=H(2);t=linspace(0,2*p,m);
  12. x=a+R*cos(t);
  13. y=b+R*sin(t);%以(a,b)为圆心,R为半径
  14. z=linspace(h1,h2,n);%高度为[h1,h2]
  15. xx=meshgrid(x,z);
  16. yy=meshgrid(y,z);
  17. zz=meshgrid(z,t)';
  18. mesh(xx,yy,zz)
复制代码

道具 举报

管理员

风雪夜归人

Rank: 30Rank: 30Rank: 30Rank: 30

签到天数: 12 天

[LV.3]偶尔看看II

UID
1
主题
1390
帖子
5053
积分
70501
威望
778
贝壳
53863
贡献
4889

管理团队 技术小组 原创先锋 宣传大使

发表于 2008-12-21 15:48:15 |显示全部楼层
MATLAB技术论坛"有偿编程担保制度" "技术团队资格认证""官方有偿编程团队",保证您有偿编程安全。

通过两点绘制圆柱和圆台

如果想通过两点绘制自定义的圆柱或圆台的话,那么就需要自己编写成,并且需要较好的空间立体几何想象能力

但是万幸的是我们找了相关直接程序

1.过两点绘制圆柱http://www.matlabsky.net/thread-269-1-3.html
2.过两点绘制圆台http://www.matlabsky.net/thread-273-1-2.html

道具 举报

Rank: 1

该用户从未签到

UID
18307
主题
0
帖子
19
积分
24
威望
0
贝壳
2
贡献
0
发表于 2009-11-24 16:23:34 |显示全部楼层

道具 举报

Rank: 2Rank: 2

该用户从未签到

UID
94595
主题
3
帖子
29
积分
112
威望
0
贝壳
44
贡献
53
发表于 2011-4-11 16:23:17 |显示全部楼层
MATLAB技术论坛"有偿编程担保制度" "技术团队资格认证""官方有偿编程团队",保证您有偿编程安全。
灰常管用哦,值得下载学习和使用!!!支持!

道具 举报

您需要登录后才可以回帖 登录 | 注册帐号

关闭

站长推荐

热烈庆祝Mathworks中国成立5周年系列活动
热烈庆祝Mathworks中国成立5周年系列活动
五年前的今天,Mathworks中国成立,到现在MATLAB在中国研究者业内已经具有相当的规模和影响了,我们可喜的看到:现在的高校、科研机构越来越多地购买正版MATLAB软件,MATLAB的推广在中国逐步开展起来。

查看 »

网站简介 | 发展历程 | 特色业务 | 管理团队 | 免责声明 | 广告服务 | 联系我们 | 付款方式 | 友情链接 | 帮助中心

商务合作:455681698   服务邮箱:matlabsky@gmail.com   支付宝:yuthreestone@163.com

合作站点:数模联盟 函数百科 网上商城   出版单位:北航出版社 道然科技   开发平台:Discuz! X2

CopyRight © 2008-2012 迈粉网 ( 陕ICP备08102094号 ) All Rights Reserved

排行热榜|网站地图|手机浏览|管理邮箱||     

GMT+8, 2012-5-19 06:19 , Processed in 0.158117 second(s), 25 queries , Gzip On, Xcache On.

回顶部