匿名用户

1级

2014-09-14 回答

L=120;  %长

D=50;   %宽,圆桌面直径

d=2.5;  %木板宽

hL=L/2; %半长

R=D/2;  %圆桌面半径

y=-R+d/2:d:R-d/2; %长条宽度方向中心位置

x=sqrt(R^2-y.^2); %长条中心在圆上的位置,也就是桌子边缘

hh=hL-x;          %开槽长度

H=hL-x(1);        %最长腿长度,也就是最大桌子高度

Tx=[x -x;x -x];Ty=[y-d/2 fliplr(y)+d/2;y+d/2 fliplr(y)-d/2]; %桌面数据

Tx=Tx(:);Ty=Ty(:);Tz=zeros(size(Tx));

legx=[hL*ones(size(x));hL*ones(size(x));x;x];             %桌腿数据

legy=[y-d/2;y+d/2;y+d/2;y-d/2];

legz=zeros(size(legx));

zhoux=[hL-H/2;hL-H/2];zhouy=[-R R];zhouz=[0;0];             %轴数据

figure(1),clf;

h1=patch(Tx,Ty,Tz,'facecolor',[1 0.5 0],'edgecolor',[1 1 1]);

h2=patch(legx,legy,legz,'facecolor',[1 0.5 0],'edgecolor',[1 1 1]);

h3=patch(-legx,legy,legz,'facecolor',[1 0.5 0],'edgecolor',[1 1 1]);

hold on

h4=plot3(zhoux,zhouy,zhouz,'k-.');

h5=plot3(-zhoux,zhouy,zhouz,'k-.');

hold off

view(3);

axis equal;

axis([-hL hL -R R 0 H]);

axis off;

ddeg=2;                    %角度增量

for deg=0:ddeg:75          %最长条桌腿相对桌面折叠角度

zz=-H/2*sind(deg);     %轴相对桌面高度

xx=x(1)+H/2*cosd(deg); %轴横坐标

alldeg=atan2(-zz*ones(size(x)),xx-x); %每个条腿折叠角度

allx=(hL-x).*cos(alldeg)+x;           %每条腿末端x坐标

allz=-(hL-x).*sin(alldeg);            %每条腿末端z坐标

minz=min(allz);                       %最小z坐标

legx=[allx;allx;x;x];                 %腿x数据

legz=[allz;allz;zeros(size(allz));zeros(size(allz))]-minz;%t腿z数据

set(h1,'ZData',-minz*ones(size(Tz)));

set(h2,'XData',legx,'ZData',legz);

set(h3,'XData',-legx,'ZData',legz);

set(h4,'XData',[xx;xx],'ZData',[zz;zz]-minz);

set(h5,'XData',-[xx;xx],'ZData',[zz;zz]-minz);

pause(0.1);

drawnow;

end

追问:

额 我不是想要这个图 我想要边缘曲线的

追问:

额 我不是要这个图,我想要边缘曲线

追答:

Bx Bz Bz

也就是桌腿边缘曲线的三维坐标

用红线画出

L=120;  %长

D=50;   %宽,圆桌面直径

d=2.5;  %木板宽

hL=L/2; %半长

R=D/2;  %圆桌面半径

y=-R+d/2:d:R-d/2; %长条宽度方向中心位置

x=sqrt(R^2-y.^2); %长条中心在圆上的位置hh=hL-x;

H=hL-x(1);        %最长腿长度,也就是最大桌子高度

yb=linspace(y(1),y(end),50); %这里50表示将边缘分成50段,可以根据需要自己修改

xb=sqrt(R^2-yb.^2);

Bx=hL*ones(size(xb)); By=yb; Bz=zeros(size(xb));             %边缘曲线数据

figure(1),clf;

hold on

h6=plot3(Bx,By,Bz,'r-','linewidth',2);

h7=plot3(-Bx,By,Bz,'r-','linewidth',2);

hold off

view(3);

axis equal;

axis([-hL hL -R R 0 H]);

grid on;

ddeg=2;                    %角度增量

pause(0.2);

for deg=0:ddeg:75          %最长条桌腿相对桌面折叠角度

zz=-H/2*sind(deg);     %轴相对桌面高度

xx=x(1)+H/2*cosd(deg); %轴横坐标

alldeg2=atan2(-zz*ones(size(xb)),xx-xb);

Bx=(hL-xb).*cos(alldeg2)+xb;

Bz=-(hL-xb).*sin(alldeg2);

minz=min(Bz);

set(h6,'XData',Bx,'ZData',Bz-minz);

set(h7,'XData',-Bx,'ZData',Bz-minz);

pause(0.1);

drawnow;

end

matlab求桌子频率,怎样用matlab求出桌子的边缘曲线和开槽长度相关推荐

  1. Hilbert变换求信号的包络线及MATLAB代码

    一.Hilbert变换表达式 Hilbert变换是信号与的卷积,表达式如下: 由于本质是卷积,因此可以从"线性系统","调幅-调频"等角度思考.进一步可参考如下 ...

  2. matlab用lism求零输入响应,信号与系统matlab课后作业_北京交通大学讲解.docx

    信号与系统matlab课后作业_北京交通大学讲解.docx 信号与系统MATLAB平时作业 学院 电子信息工程学院 班级 姓名 学号 教师 钱满义 MATLAB习题 M3-1 一个连续时间LTI系统满 ...

  3. 用符号方法求下列极限或导数matlab,实验7答案 Matlab符号计算

    matlab实验报告答案 实验7 Matlab符号计算 实验目的: 1. 掌握定义符号对象的方法: 2. 掌握符号表达式的运算法则以及符号矩阵运算. 3. 掌握求符号函数极限及导数的方法. 4. 掌握 ...

  4. 学习Matlab的第一个程序——用二分法求根

    学习Matlab的第一个程序--用二分法求根 问题描述 matlab代码 遇到的一些问题和心得体会 问题描述 对于一个给定的方程f(x)=0和零点的大致区间(a,b),用二分法将区间(a,b)缩小,当 ...

  5. MATLAB中的多项式的四则运算与求根方法

    文章目录 1.多项式的加法 2.多项式乘法 3.多项式除法 4.多项式求根及其逆运算 4.1 多项式求根 4.2 求根的逆运算 1.多项式的加法 当两个多项式的阶次不一样的时候,低阶的多项式用首零填补 ...

  6. matlab方程近似求根,第七讲MATLAB中求方程的近似根(解)教学目的学习matlab中求根命令.doc...

    第七讲MATLAB中求方程的近似根(解)教学目的学习matlab中求根命令 第七讲 MATLAB中求方程的近似根(解) 教学目的:学习matlab中求根命令,了解代数方程求根求解的四种方法,即图解法. ...

  7. 如何用matlab求线性方程的通解,用matlab求线性方程的解

    用矩阵除法,求线性方程组的特解 利用矩阵除法求线性方程组的形式为:AX=b,其中A为系数矩阵,b为方程组右侧的一列常数. 由AX=b,得X=A\b,在这种条件下,首先要保证A为满秩矩阵,否则无法求解. ...

  8. MATLAB如何求传函,FeedBack system matlab整理

    一 求传函 G(s) = (2S^2+3S+1)/(S^3+3.2S^2+2.4S) den = [1 3.2 2.4 0] %分母 sys = tf(num,den) %tf求传函函数 利用conv ...

  9. matlab怎么求两个数的和,matlab怎么求出两个函数的交点

    matlab中,两个自变量的函数怎么求最大值(急!1) 需求:利用matlab求解二元函数y=f(x1,x2)=(339-0.01*x1-0.003*x2)*x1+(399-0.004*x1-0.01 ...

最新文章

  1. Sci-Hub重生了,这回用上了分布式网络
  2. 再读《精通css》06:背景图片
  3. sklearn数据的获取
  4. Redis的设计与实现之跳表
  5. 安装python3.7.0的步骤_CentOS7下简单安装python3.7.0步骤
  6. s5pv210——LCD基础理论
  7. Maven常见警告解决办法
  8. java项目实现服务器监控,Java实现服务器状态监控
  9. [外挂1] MFC 鼠标位置设置
  10. 【医疗影像处理】脑部MRI影像denoise方法总结[antspy]
  11. Retinex算法的C++/opencv实现
  12. 陪学网腾讯直播课堂开课啦~免费、免费、免费,重要的事情说三遍
  13. 【机器学习】(5.4)聚类--密度聚类(DBSCAN、MDCA)
  14. 使用Aria2+AriaNG+FileManager来进行离线BT下载及在线播放
  15. 那些精贵的文献资源下载网址经验总结
  16. 西湖论剑2021 MISC部分(LSB,取证)
  17. 【SNA】社会网络分析二 Gephi 功能详解
  18. 走进小作坊(二十)----商道:胡雪岩叱咤商场的经营智慧
  19. i5-12400和i5-12400F有什么区别 i512400和12400f哪个好
  20. 数值积分公式及龙贝格(Romberg)算法实现matlab

热门文章

  1. chrome.webRequest
  2. 币圈×互联网第一男神天团,昨日成团
  3. Java中【年(year)和周年(week year)】的区别
  4. js 获取当前时间 年月日
  5. .net 框架下绘制曲线图
  6. 第三方授权登陆(QQ)
  7. megacli通过盘符定位物理盘_megacli更改raid策略
  8. 产品高阶能力:架构图的设计与画法
  9. 2021年塔式起重机司机考试及塔式起重机司机考试总结
  10. 订阅w3c组织邮件列表申请方法