查看: 177|回复: 4|关注: 0

[已解决] 求助matlab三维画图问题

[复制链接]

新手

14 麦片

财富积分


050


2

主题

5

帖子

0

最佳答案
本帖最后由 飞翔的菜J 于 2020-5-22 23:12 编辑

>> clear all
x=0:0.5:10;
y=0:0.5:10;
x1=sqrt(x.^2+(y-300).^2);
x2=sqrt((x+259.8).^2+(y-150).^2);
x3=sqrt((x+259.8).^2+(y+150).^2);
x4=sqrt(x.^2+(y+300).^2);
x5=sqrt((x-259.8).^2+(y+150).^2);
x6=sqrt((x-259.8).^2+(y-150).^2);

syms b1 b2 b3 b4 b5 b6;
w=0.126;
for i=1:length(x1)
s1(i)=vpasolve([x1(i)==b1*acosh(40/(b1)+1)],b1);
end
s1=double(s1);
Th1=s1*w;
for i=1:length(x2)
s2(i)=vpasolve([x2(i)==b2*acosh(40/(b2)+1)],b2);
end
s2=double(s2);
Th2=s2*w;
for i=1:length(x3)
s3(i)=vpasolve([x3(i)==b3*acosh(40/(b3)+1)],b3);
end
s3=double(s3);
Th3=s3*w;
for i=1:length(x4)
s4(i)=vpasolve([x4(i)==b4*acosh(40/(b4)+1)],b4);
end
s4=double(s4);
Th4=s4*w;
for i=1:length(x5)
s5(i)=vpasolve([x5(i)==b5*acosh(40/(b5)+1)],b5);
end
s5=double(s5);
Th5=s5*w;
for i=1:length(x6)
s6(i)=vpasolve([x6(i)==b6*acosh(40/(b6)+1)],b6);
end
s6=double(s6);
Th6=s6*w;
c1=-x.^2+y.*(300-y);
c2=-x.*(259.8+x)+y.*(150-y);
c3=-x.*(259.8+x)-y.*(150+y);
c4=-x.^2-y.*(300+y);
c5=x.*(259.8-x)-y.*(150+y);
c6=x.*(259.8-x)+y.*(150-y);
c1/(sqrt(x.^2+y.^2).*sqrt(x.^2+(300-y).^2));
d1=c1/(sqrt(x.^2+y.^2).*sqrt(x.^2+(300-y).^2));
d2=c2/(sqrt(x.^2+y.^2).*sqrt((259.8+x).^2+(150-y).^2));
d3=c3/(sqrt(x.^2+y.^2).*sqrt((259.8+x).^2+(150+y).^2));
d5=c5/(sqrt(x.^2+y.^2).*sqrt((259.8-x).^2+(150+y).^2));
d4=c4/(sqrt(x.^2+y.^2).*sqrt(x.^2+(300+y).^2));
d6=c6/(sqrt(x.^2+y.^2).*sqrt((259.8-x).^2+(150-y).^2));

F1=d1*Th1;
F2=d2*Th2;
F3=d3*Th3;
F4=d4*Th4;
F5=d5*Th5;
F6=d6*Th6;
>> F=F1+F2+F3+F4+F5+F6;

>> plot3(x,y,F)


实际效果(只是和这个类似)

实际效果(只是和这个类似)

我画的

我画的


我这个程序画的只是空间的一部份,求问怎么画出实例图这种效果啊
标红的地方是我设出xy坐标的设法,我设置方式可能会导致xy'都是成比例增加,我是初学不太会设置出如何能在三维图像内,任意xy坐标是如何带入式子中计算的。求助各位大佬!
回复主题 已获打赏: 0 积分

举报

论坛优秀回答者

5

主题

2239

帖子

669

最佳答案
  • 关注者: 186
发表于 2020-5-22 22:59:49 | 显示全部楼层
新手发帖的上方有专门的提示

                               
登录/注册后可看大图

置顶也有专门讲如何提问的
www.ilovematlab.cn/thread-107902-1-1.html
标题为什么不好好写成类似《如何使用解方程组的数值进行三维绘图》这样清晰明确的形式呢?光写个MATLAB画图,跟本科论文题目写成《本科论文》一样别人根本不知道具体是什么内容啊。而且你上个帖子还什么《求吧友帮忙》,太懒了吧,直接把其他地方的东西复制一遍往这里一扔,连对应的修改都不做?
提问请:①准确描述问题②提出你的思考(等着抄作业的一律锁帖)③提供代码文本而非截图④及时反馈
回复此楼 已获打赏: 0 积分

举报

新手

14 麦片

财富积分


050


2

主题

5

帖子

0

最佳答案
 楼主| 发表于 2020-5-22 23:05:39 | 显示全部楼层
TouAkira 发表于 2020-5-22 22:59
新手发帖的上方有专门的提示

置顶也有专门讲如何提问的

好的,谢谢指导
回复此楼 已获打赏: 0 积分

举报

论坛优秀回答者

5

主题

2239

帖子

669

最佳答案
  • 关注者: 186
发表于 2020-5-22 23:17:27 | 显示全部楼层 |此回复为最佳答案

参考我在
https://www.ilovematlab.cn/thread-573800-1-1.html
里面提到的,先用meshgrid对绘图的横纵坐标轴控制向量进行矩阵化处理,再用两重for循环求解高轴上的坐标点构成矩阵,最后用mesh或surf绘图。在MATLAB里面绘制三维图一般都需要这样的矩阵形式。
提问请:①准确描述问题②提出你的思考(等着抄作业的一律锁帖)③提供代码文本而非截图④及时反馈
回复此楼 已获打赏: 0 积分

举报

新手

14 麦片

财富积分


050


2

主题

5

帖子

0

最佳答案
 楼主| 发表于 2020-5-22 23:22:36 | 显示全部楼层
TouAkira 发表于 2020-5-22 23:17
参考我在
https://www.ilovematlab.cn/thread-573800-1-1.html
里面提到的,先用meshgrid对绘图的横纵坐 ...

好的,谢谢!
回复此楼 已获打赏: 0 积分

举报

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

本版积分规则

关闭

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

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