查看: 207|回复: 3|关注: 0

[已解决] 怎么用polyshape函数形成曲线凸侧一边的区域

[复制链接]

新手

14 麦片

财富积分


050


6

主题

17

帖子

0

最佳答案
rt=50;rw=29;r1=40;alpha=0.35;
rh=2*rt-rw;r2=2*rt-r1;beta=acos((r2-(rh-rt))/rt);fai=acos((r1+rw)/100);gama=acos(rt/rh);
t4=0:0.001:gama;
x7=100+71.*cos(2.*t4+68.*pi/36)-100.*cos(t4+68.*pi/36);
y7=-71.*sin(2.*t4+68.*pi/36)+100.*sin(t4+68.*pi/36);
A=polyshape(x7,y7,'Simplify',false);
plot(A)
如图所示,形成红色区域,而不是曲线凹侧的区域,求指教

869B15BDD67D305AF6115AF9E1C79F3B.png
回复主题 已获打赏: 0 积分

举报

MATLAB 基础讨论
版块优秀回答者

入门

441 麦片

财富积分


50500


21

主题

257

帖子

52

最佳答案
  • 关注者: 7
发表于 2020-5-29 10:07:57 | 显示全部楼层 |此回复为最佳答案
clear;
close all;
rt=50;rw=29;r1=40;alpha=0.35;
rh=2*rt-rw;r2=2*rt-r1;beta=acos((r2-(rh-rt))/rt);fai=acos((r1+rw)/100);gama=acos(rt/rh);
t4=0:0.001:gama;
x7=100+71.*cos(2.*t4+68.*pi/36)-100.*cos(t4+68.*pi/36);
y7=-71.*sin(2.*t4+68.*pi/36)+100.*sin(t4+68.*pi/36);
A=polyshape(x7,y7,'Simplify',false);
%% 设置Y的截面值
Y=min(A.Vertices(:,2))-10;
B=A;
A.Vertices=[[A.Vertices(1,1),Y];A.Vertices;[A.Vertices(end,1),Y]];
plot(A)
hold on
% 新加入的点进行标注
plot(A.Vertices([1,end],1),A.Vertices([1,end],2),'ro')
%%  直接处理看到会有相切曲线情况,可以进行外扩一下。
figure
B.Vertices=[[max(B.Vertices(:,1)),Y];[max(B.Vertices(:,1)),B.Vertices(1,2)];B.Vertices;[B.Vertices(end,1),Y]];
plot(B)
hold on
% 新加入的点进行标注
plot(B.Vertices([1,2,end],1),B.Vertices([1,2,end],2),'ro')
ployshape_test.jpg



回复此楼 已获打赏: 0 积分

举报

新手

14 麦片

财富积分


050


6

主题

17

帖子

0

最佳答案
 楼主| 发表于 2020-5-29 11:04:38 | 显示全部楼层
15631202458 发表于 2020-5-29 10:07
clear;
close all;
rt=50;rw=29;r1=40;alpha=0.35;

谢谢您的回答,十分感谢,我自己再研究下
回复此楼 已获打赏: 0 积分

举报

新手

14 麦片

财富积分


050


6

主题

17

帖子

0

最佳答案
 楼主| 发表于 2020-5-29 14:21:08 | 显示全部楼层
15631202458 发表于 2020-5-29 10:07
clear;
close all;
rt=50;rw=29;r1=40;alpha=0.35;

A.Vertices=[[A.Vertices(1,1),Y];A.Vertices;[A.Vertices(end,1),Y]];
请问一下这个是什么意思,并且A.Vertices是什么意思,谢谢
回复此楼 已获打赏: 0 积分

举报

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

本版积分规则

关闭

站长推荐上一条 /4 下一条

快速回复 返回顶部 返回列表