版块导航
正在加载中...
客户端APP下载
登录
注册
帖子
帖子
用户
本版
应《网络安全法》要求,自2017年10月1日起,未进行实名认证将不得使用互联网跟帖服务。为保障您的帐号能够正常使用,请尽快对帐号进行手机号验证,感谢您的理解与支持!
24小时热门版块排行榜
>
论坛更新日志
(3779)
>
文献求助
(218)
>
虫友互识
(210)
>
学术会议
(200)
>
导师招生
(145)
>
基金申请
(142)
>
论文投稿
(109)
>
硕博家园
(90)
>
考博
(75)
>
休闲灌水
(66)
>
博后之家
(62)
>
教师之家
(51)
>
考研
(49)
>
找工作
(45)
>
公派出国
(40)
>
论文道贺祈福
(28)
小木虫论坛-学术科研互动平台
»
计算模拟区
»
仿真模拟
»
MATLAB
»
【求助】matlab生成旋转体?
10
1/1
返回列表
查看: 3655 | 回复: 9
只看楼主
@他人
存档
新回复提醒
(忽略)
收藏
在APP中查看
adder8810
银虫
(小有名气)
应助: 0
(幼儿园)
金币: 592.1
散金: 10
帖子: 175
在线: 70小时
虫号: 577827
注册: 2008-06-27
[交流]
【求助】matlab生成旋转体?
已有5人参与
请教一个问题,谢谢:
已知一个二维数据,y=f(x), 想使得这个数据绕y轴旋转而成为一个旋转对称的三维数据,该如何处理!
我用了cylinder,但它好像只能是绕x轴旋转,并不是所希望的形状?
回复此楼
» 收录本帖的淘帖专辑推荐
杂货铺
» 猜你喜欢
娱乐
已经有4人回复
纯娱乐,不喜欢勿喷
已经有8人回复
售SCI文章,我:8O.5.5.1O.54,科目全,可十急
已经有6人回复
售SCI-T0P文章,我:8O.5.5.1.O.54,科目齐全,可+急
已经有6人回复
售SCI一区文章,我:8.O.55.1.O.54,科目齐全,可伽急
已经有7人回复
售SCI一区T0P文章,我:8O.55.1.O.5.4,科目齐全,可+急
已经有4人回复
面上提前没消息,有中的吗
已经有17人回复
售SCI一区T0P文章,我:8O.55.1.O.54,科目全,可伽急
已经有7人回复
售SCI-T0P文章,我:8O.5.5.1.O.54,科目齐全,可+急
已经有5人回复
售SCI一区文章,我:8O5.5.1.O5.4,科目全,可伽急
已经有10人回复
高级回复
» 本主题相关价值贴推荐,对您同样有帮助:
帮忙看看这个平面图用matlab怎么画
已经有19人回复
求matlab生成m序列的程序
已经有3人回复
matlab生成随机行走网格 模拟材料生长
已经有26人回复
【分享】立方晶系标准投影图+投影图自动生成软件【已搜索无重复】】
已经有220人回复
【分享】科技论文中图片的处理方法【已搜索无重复】
已经有45人回复
【在线答疑】办公软件答疑专帖
已经有39人回复
1楼
2011-04-11 01:04:46
已阅
回复此楼
关注TA
给TA发消息
送TA红花
TA的回帖
xiegangmai
版主
(职业作家)
我没头衔
仿真EPI: 3
应助: 157
(高中生)
贵宾: 5.735
金币: 40609
散金: 2394
红花: 63
沙发: 4
帖子: 4046
在线: 1330.2小时
虫号: 653607
注册: 2008-11-13
性别: GG
专业: 机械动力学
管辖:
仿真模拟
★ ★
小木虫(金币
+0.5
):给个红包,谢谢回帖交流
zzuwangshilei(金币+1): 积极参与 2011-04-11 14:07:15
引用回帖:
Originally posted by
adder8810
at 2011-04-11 01:04:46:
请教一个问题,谢谢:
已知一个二维数据,y=f(x), 想使得这个数据绕y轴旋转而成为一个旋转对称的三维数据,该如何处理!
我用了cylinder,但它好像只能是绕x轴旋转,并不是所希望的形状?
默认是绕z轴旋转的。
如果需要绕其他轴或任意直线旋转,需要进行变换,用计算机图形学中的图形平移和旋转相关知识,说白了就是乘以一个转换矩阵。
[
Last edited by xiegangmai on 2011-4-11 at 12:48
]
赞
一下
(2人)
回复此楼
明德厚学、求是创新
2楼
2011-04-11 07:36:08
已阅
回复此楼
关注TA
给TA发消息
送TA红花
TA的回帖
adder8810
银虫
(小有名气)
应助: 0
(幼儿园)
金币: 592.1
散金: 10
帖子: 175
在线: 70小时
虫号: 577827
注册: 2008-06-27
引用回帖:
Originally posted by
xiegangmai
at 2011-04-11 07:36:08:
默认是绕y轴旋转的。
如果需要绕其他轴或任意直线旋转,需要进行变换,用计算机图形学中的图形平移和旋转相关知识,说白了就是乘以一个转换矩阵。
Matlab中是否有现成的函数可以调用?
另外,我的问题其实不是很复杂,能绕x轴或者y轴旋转就行,只是想改变系统默认的轴到与之垂直的轴上?
赞
一下
回复此楼
3楼
2011-04-11 10:18:50
已阅
回复此楼
关注TA
给TA发消息
送TA红花
TA的回帖
xianggui7895
银虫
(小有名气)
应助: 0
(幼儿园)
金币: 442.1
散金: 44
红花: 4
帖子: 190
在线: 53.4小时
虫号: 980738
注册: 2010-03-24
性别: GG
专业: 无机非金属类光电信息与功
★ ★
小木虫(金币
+0.5
):给个红包,谢谢回帖交流
xiegangmai(金币+1): 鼓励讨论交流! 2011-04-11 13:18:25
matlab好像没有提供更好的解决办法,你有函数f(x),先设定Y值,反函数求x,然后cylinder(x)??
赞
一下
(2人)
回复此楼
4楼
2011-04-11 11:04:23
已阅
回复此楼
关注TA
给TA发消息
送TA红花
TA的回帖
xiegangmai
版主
(职业作家)
我没头衔
仿真EPI: 3
应助: 157
(高中生)
贵宾: 5.735
金币: 40609
散金: 2394
红花: 63
沙发: 4
帖子: 4046
在线: 1330.2小时
虫号: 653607
注册: 2008-11-13
性别: GG
专业: 机械动力学
管辖:
仿真模拟
★ ★
小木虫(金币
+0.5
):给个红包,谢谢回帖交流
zzuwangshilei(金币+1): 支持 2011-04-11 14:07:39
引用回帖:
Originally posted by
adder8810
at 2011-04-11 10:18:50:
Matlab中是否有现成的函数可以调用?
另外,我的问题其实不是很复杂,能绕x轴或者y轴旋转就行,只是想改变系统默认的轴到与之垂直的轴上?
你看这样行不?
CODE:
clear
x = 0 : pi / 10 : 2 * pi; % x范围
y = 2 + cos( x ); % y = f( x );
[ X, Y, Z ] = cylinder( y, 20 ); % 回转中心是z轴
subplot( 1, 3, 1 ) % 绕z轴旋转
surf( X, Y, Z )
xlabel( 'x' )
ylabel( 'y' )
zlabel( 'z' )
axis square
Sx = reshape( X, size( X, 1 ) * size( X, 2 ), 1 );
Sy = reshape( Y, size( Y, 1 ) * size( Y, 2 ), 1 );
Sz = reshape( Z, size( Z, 1 ) * size( Z, 2 ), 1 );
subplot( 1, 3, 2 ) % 将回转中心由z轴转到x轴,需绕y轴旋转90度
theta = pi / 2;
% 图形变换矩阵
M = [ cos( theta ), 0, -sin( theta );
0, 1, 0;
sin( theta ), 0, cos( theta ) ];
S1 = [ Sx, Sy, Sz ] * M;
X1 = reshape( S1( :, 1 ), size( X, 1 ), size( X, 2 ) );
Y1 = reshape( S1( :, 2 ), size( X, 1 ), size( X, 2 ) );
Z1 = reshape( S1( :, 3 ), size( X, 1 ), size( X, 2 ) );
surf( X1, Y1, Z1 )
xlabel( 'x' )
ylabel( 'y' )
zlabel( 'z' )
axis square
subplot( 1, 3, 3 ) % 将回转中心由z轴转到y轴,需绕x轴旋转-90度
theta = -pi / 2;
% 图形变换矩阵
M = [ 1, 0, 0;
0, cos( theta ), sin( theta );
0, -sin( theta ), cos( theta ) ];
S2 = [ Sx, Sy, Sz ] * M;
X2 = reshape( S2( :, 1 ), size( X, 1 ), size( X, 2 ) );
Y2 = reshape( S2( :, 2 ), size( X, 1 ), size( X, 2 ) );
Z2 = reshape( S2( :, 3 ), size( X, 1 ), size( X, 2 ) );
surf( X2, Y2, Z2 )
xlabel( 'x' )
ylabel( 'y' )
zlabel( 'z' )
axis square
赞
一下
(4人)
回复此楼
明德厚学、求是创新
5楼
2011-04-11 13:17:51
已阅
回复此楼
关注TA
给TA发消息
送TA红花
TA的回帖
adder8810
银虫
(小有名气)
应助: 0
(幼儿园)
金币: 592.1
散金: 10
帖子: 175
在线: 70小时
虫号: 577827
注册: 2008-06-27
非常感谢,但不是需要的。
因为我这个相当于由一个二维函数经过旋转变成一个三维旋转对称的形状。那么在变换前,这个二维函数绕什么轴旋转就是关键,轴不同,旋转的曲面就完全不同。
按楼主的方法,只是将已经生成的旋转曲面,调整成不同轴向,但其实,旋转曲面的基本形状是一样的。
比如半周期的正弦函数,如果绕x轴旋转成为纺锤形,而绕y轴旋转则成为环形,楼主的方式好像只是改变纺锤形的轴向指向,而我希望得到环形,即旋转轴不同。
很感谢楼主,不知我的理解是否正确,我试了你的方法,曲面形状其实是一样的:(
赞
一下
回复此楼
6楼
2011-04-11 15:15:04
已阅
回复此楼
关注TA
给TA发消息
送TA红花
TA的回帖
xiegangmai
版主
(职业作家)
我没头衔
仿真EPI: 3
应助: 157
(高中生)
贵宾: 5.735
金币: 40609
散金: 2394
红花: 63
沙发: 4
帖子: 4046
在线: 1330.2小时
虫号: 653607
注册: 2008-11-13
性别: GG
专业: 机械动力学
管辖:
仿真模拟
★
小木虫(金币
+0.5
):给个红包,谢谢回帖交流
引用回帖:
Originally posted by
adder8810
at 2011-04-11 15:15:04:
因为我这个相当于由一个二维函数经过旋转变成一个三维旋转对称的形状。那么在变换前,这个二维函数绕什么轴旋转就是关键,轴不同,旋转的曲面就完全不同。
按楼主的方法,只是将已经生成的旋转曲面,调整成不同轴 ...
不好意思,误解了!
要画出你所想要的图形,只需对原始二维曲线进行一下变换就可以了的,即沿 y = x 直线对称一下,这应该可以吧。
也可以根据图形变换方法,自己写个函数来画图。
简单试了试,mycylinder.m文件:
CODE:
function [ sx, sy, sz ] = mycylinder( x, y, ax )
% 将x, y转成列向量
x = x(:);
y = y(:);
z = zeros( size( x ) );
dtheta = pi / 100;
sx = zeros( length( x ), 201 );
sy = zeros( length( x ), 201 );
sz = zeros( length( x ), 201 );
switch ax
case 'x'
for i = 1 : 200
theta = i * dtheta;
M = [ 1, 0, 0; 0, cos( theta ), sin( theta ); 0, -sin( theta ), cos( theta ) ];
S = [ x, y, z ] * M;
sx( :, i ) = S( :, 1 );
sy( :, i ) = S( :, 2 );
sz( :, i ) = S( :, 3 );
end
sx( :, end ) = sx( :, 1 );
sy( :, end ) = sy( :, 1 );
sz( :, end ) = sz( :, 1 );
case 'y'
for i = 1 : 200
theta = i * dtheta;
M = [ cos( theta ), 0, -sin( theta ); 0, 1, 0; sin( theta ), 0, cos( theta ) ];
S = [ x, y, z ] * M;
sx( :, i ) = S( :, 1 );
sy( :, i ) = S( :, 2 );
sz( :, i ) = S( :, 3 );
end
sx( :, end ) = sx( :, 1 );
sy( :, end ) = sy( :, 1 );
sz( :, end ) = sz( :, 1 );
end
测试例1:
CODE:
clear
clc
x = 0 : pi / 100 : 2 * pi; % x范围
y = 2 + cos( x ); % y = f( x );
subplot( 1, 3, 1 )
plot( x, y );
xlabel( 'x' )
ylabel( 'y' )
[ sx1, sy1, sz1 ] = mycylinder( x, y, 'x' );
subplot( 1, 3, 2)
surf( sx1, sy1, sz1 );
xlabel( 'x' )
ylabel( 'y' )
zlabel( 'z' )
[ sx2, sy2, sz2 ] = mycylinder( x, y, 'y' );
subplot( 1, 3, 3 )
surf( sx2, sy2, sz2 );
xlabel( 'x' )
ylabel( 'y' )
zlabel( 'z' )
结果:
测试例2:
CODE:
clear
clc
x = 0 : pi / 100 : 2 * pi; % x范围
y = 2 + x .^ 2; % y = f( x );
subplot( 1, 3, 1 )
plot( x, y );
xlabel( 'x' )
ylabel( 'y' )
[ sx1, sy1, sz1 ] = mycylinder( x, y, 'x' );
subplot( 1, 3, 2)
surf( sx1, sy1, sz1 );
xlabel( 'x' )
ylabel( 'y' )
zlabel( 'z' )
[ sx2, sy2, sz2 ] = mycylinder( x, y, 'y' );
subplot( 1, 3, 3 )
surf( sx2, sy2, sz2 );
xlabel( 'x' )
ylabel( 'y' )
zlabel( 'z' )
结果:
你看看是不是需要的结果。mycylinder函数还需完善。
按第一种方式,将曲线沿y = x对称一下,用cylinder做更方便。
[
Last edited by xiegangmai on 2011-4-11 at 20:57
]
赞
一下
(4人)
回复此楼
» 本帖已获得的红花(最新10朵)
scn6767
明德厚学、求是创新
7楼
2011-04-11 20:56:25
已阅
回复此楼
关注TA
给TA发消息
送TA红花
TA的回帖
adder8810
银虫
(小有名气)
应助: 0
(幼儿园)
金币: 592.1
散金: 10
帖子: 175
在线: 70小时
虫号: 577827
注册: 2008-06-27
太厉害了,非常感谢!
看结果是这样的,虽然我还要吸收吸收你的方法。
非常感谢!
赞
一下
回复此楼
8楼
2011-04-11 22:26:31
已阅
回复此楼
关注TA
给TA发消息
送TA红花
TA的回帖
meimeijia
金虫
(著名写手)
应助: 4
(幼儿园)
金币: 968
散金: 1384
红花: 13
帖子: 2456
在线: 353小时
虫号: 1069623
注册: 2010-08-05
专业: 数论
★
小木虫(金币
+0.5
):给个红包,谢谢回帖交流
我感觉是个曲面问题,你试试能不能调用MATLAB已有的函数处理
赞
一下
(2人)
回复此楼
曲线救梦想
9楼
2011-04-12 11:14:59
已阅
回复此楼
关注TA
给TA发消息
送TA红花
TA的回帖
scn6767
金虫
(初入文坛)
应助: 1
(幼儿园)
金币: 430.8
帖子: 24
在线: 16.1小时
虫号: 685656
注册: 2009-01-01
性别: GG
专业: 机械结构强度学
★
小木虫: 金币+0.5, 给个红包,谢谢回帖
送鲜花一朵
引用回帖:
595754楼
:
Originally posted by
xiegangmai
at 2011-04-11 20:56:25
不好意思,误解了!
要画出你所想要的图形,只需对原始二维曲线进行一下变换就可以了的,即沿 y = x 直线对称一下,这应该可以吧。
也可以根据图形变换方法,自己写个函数来画图。
简单试了试,mycylind ...
正好用到。谢谢了。收藏
赞
一下
回复此楼
10楼
2013-02-18 14:17:39
已阅
回复此楼
关注TA
给TA发消息
送TA红花
TA的回帖
相关版块跳转
第一性原理
量子化学
计算模拟
分子模拟
仿真模拟
程序语言
我要订阅楼主
adder8810
的主题更新
10
1/1
返回列表
如果回帖内容含有宣传信息,请如实选中。否则帐号将被全论坛禁言
普通表情
龙
兔
虎
猫
高级回复
(可上传附件)
百度网盘
|
360云盘
|
千易网盘
|
华为网盘
在新窗口页面中打开自己喜欢的网盘网站,将文件上传后,然后将下载链接复制到帖子内容中就可以了。
最具人气热帖推荐
[查看全部]
作者
回/看
最后发表
[
基金申请
]
纯娱乐,不喜欢勿喷
+5
Tide man
2026-08-04
8/400
2026-08-04 11:43
by
everxc
[
找工作
]
售SCI文章,我:8O.5.5.1O.54,科目全,可十急
+3
Ocx3OKOzGU4q
2026-08-03
6/300
2026-08-04 11:36
by
MWRYsWbJw4DE
[
考研
]
售SCI-T0P文章,我:8O.5.5.1.O.54,科目齐全,可+急
+3
Ocx3OKOzGU4q
2026-08-03
6/300
2026-08-04 11:34
by
MWRYsWbJw4DE
[
教师之家
]
售SCI一区文章,我:8.O.55.1.O.54,科目齐全,可伽急
+3
Ocx3OKOzGU4q
2026-08-03
7/350
2026-08-04 11:31
by
MWRYsWbJw4DE
[
基金申请
]
面上提前没消息,有中的吗
+14
archvillain
2026-08-02
17/850
2026-08-04 09:46
by
archvillain
[
硕博家园
]
售SCI一区T0P文章,我:8O.55.1.O.54,科目全,可伽急
+3
f1dmPx051StA
2026-08-03
7/350
2026-08-04 09:31
by
v1TJC4qJauAB
[
教师之家
]
售SCI一区文章,我:8O5.5.1.O5.4,科目全,可伽急
+4
jRl3mE6ddZGq
2026-08-03
10/500
2026-08-04 09:26
by
v1TJC4qJauAB
[
博后之家
]
售SCI一区文章,我:8O5.5.1.O5.4,科目全,可伽急
+4
cu9Nq1xK233Z
2026-08-03
9/450
2026-08-04 09:17
by
v1TJC4qJauAB
[
教师之家
]
售SCI一区文章,我:8.O.551.O.5.4,科目全,可伽急
+5
cu9Nq1xK233Z
2026-08-03
10/500
2026-08-04 09:15
by
v1TJC4qJauAB
[
基金申请
]
系统今天又提示维护了,估计离放榜不远了
+12
winnerche
2026-07-29
16/800
2026-08-04 08:18
by
Equinoxhua
[
有机交流
]
一个有机合成实验室都需要哪些设备?
50
+3
kf2781974
2026-07-31
10/500
2026-08-04 08:05
by
88817753
[
找工作
]
售SCI一区文章,我:8.O.551.O.5.4,科目全,可伽急
+3
cu9Nq1xK233Z
2026-08-03
9/450
2026-08-04 07:37
by
k7OM8YghWbkC
[
硕博家园
]
售SCI一区T0P文章,我:8.O.55.1.O.54,科目齐全,可+急
+4
cu9Nq1xK233Z
2026-08-03
13/650
2026-08-04 07:30
by
k7OM8YghWbkC
[
公派出国
]
售SCI一区文章,我:8.O.551.O.5.4,科目全,可伽急
+3
cu9Nq1xK233Z
2026-08-03
7/350
2026-08-04 04:46
by
k7OM8YghWbkC
[
考研
]
售SCI一区文章,我:8.O.55.1.O.54,科目齐全,可伽急
+3
cu9Nq1xK233Z
2026-08-03
8/400
2026-08-04 03:21
by
k7OM8YghWbkC
[
基金申请
]
什么时候能放榜呀?
+3
Jacob678
2026-08-03
3/150
2026-08-03 16:14
by
gltch
[
高分子
]
UV压敏胶开发
+3
ichall
2026-07-30
5/250
2026-08-03 14:40
by
Sunrisepay
[
基金申请
]
面上再次挂了,太难了,躺也躺不了,倦也卷不过,小学校之殇!
+19
低垂的野花
2026-07-31
25/1250
2026-08-03 09:25
by
gy116024
[
基金申请
]
2026年国自然面上资助率
+16
布布和一二
2026-07-30
22/1100
2026-08-03 09:20
by
gy116024
[
考博
]
2027年申博
50
+3
射雕英雄胜
2026-07-30
3/150
2026-08-02 09:36
by
lfy8008
信息提示
关闭
请填处理意见
关闭
确定