knrt.net
当前位置:首页 >> MATLAB求助。请教高手怎么求点到三维曲面的距离 >>

MATLAB求助。请教高手怎么求点到三维曲面的距离

这个问题就是:已知曲面和曲面外一点,求点到曲面的最短距离.可用优化算法求解.我解了下,结果是:曲面上的点(44.6983 60.9264 -24.8536),最短距离是35.6223

点用一个三维数组表示. p=(x0,y0,z0)p=[1 2 3];面有不同的表示方式,常用的是一般式:ax+by+cz+d=0.a=2;b=3;c=4;d=5;点到面的距离为:D=|ax0+by0+cz0+d|/sqrt(a^2+b^2+c^2)D=abs(a*p(1)+b*p(2)+c*p(3)+d)/sqrt(a^2+b^2+c^2)下面是matlab的例子p=[1 2 3];a=2;b=3;c=4;d=5;D=abs(a*p(1)+b*p(2)+c*p(3)+d)/sqrt(a^2+b^2+c^2)

ezmesh('7.07e-3*exp(-4.9517*(x/7-y/9))',[0 7 0 9])

求Z的时候要通过X,Y求,而不是x,y:Z = 0.5*X.*Y.^0.5;

按照如下操作: 方法是:鼠标右键单击“我的电脑”-->“属性”-->“高级”-->“性能”-->高级-->“虚拟内存”-->“更改”,然后先点选C分区(即系统分区),再选中下面的“无分页文件”项,单击“设置”确定,即可将C分区的虚拟内存清除.接着选择硬盘内剩余空间较大的分区,再选择“自定义大小”项,自定义“初始大小”和“最大值”,最后单击“设置”确定即可.(内存容量在256MB以下,就设置为1.5倍;在512MB以上,设置为内存容量的1024.MB

n = 10; % 生成7a64e59b9ee7ad9431333337386664 n 个随机点rg = [5 95]; % 坐标点范围A = randint(n,2,rg);a = randint(1,2,rg); % 任意点for p = 1:n pc = num2str(p); plot(A(p,1),A(p,2),'b.'); text(A(p,1)+2,A(p,2)-1,pc); hold on axis([0 100 0 100]

你的代码通过Hough变换得出了两条直线:其实你可以直接通过线性拟合求出一条直线,然后找出离直线最远的那个点:im = imread('tu1.jpg'); width = size(im, 2); [~, index] = max(im); p = polyfit(1:width, index, 1); [v, maxi] = max(abs(polyval(p, 1:width) - index)); v/norm([p(1) 1]) % 最远距离 imshow(im) hold on plot(maxi, index(maxi), 'or')

兄弟,进入CMOS方式是根据主板上BIOS厂家的,通常情况下开机显LOGO界面后按“DEL”或“F2”还有的按“F12”键(其实在开机显LOGO界面下会有个提示,提示按什么键就按什么键进入就OK啦).

A=input('请输入第一个点的坐标:');%输入的坐标格式为[x,y]或[x,y,z],下同B=input('请输入第二个点的坐标:');if numel(A)==2; d=sqrt((A(1)-B(1))^2+(A(2)-B(2))^2)%平面点的距离endif numel(A)==3; d=sqrt((A(1)-B(1))^2+(A(2)-B(2))^2+(A(3)-B(3))^2)%空间点的距离end

x = [-1 0 1 2]; %已知4个点,坐标保存在x,y,z中y = [2 0.5 -1 2];z = [-1 0 3 -2];X = 0.1; %已知X,Y, 求ZY = 1.1;e = 0.05; % e表示精度[xx,yy]=meshgrid(-3:e:3,-3:e:3);[m,n] = size(xx);zz=griddata(x,y,z,xx,yy);x_i = ceil(find(abs(xx-X)<e/2,1)/m);yy = yy';y_i = ceil(find(abs(yy-Y)<e/2,1)/n);Z = zz(x_i,y_i);disp(Z)

网站首页 | 网站地图
All rights reserved Powered by www.knrt.net
copyright ©right 2010-2021。
内容来自网络,如有侵犯请联系客服。zhit325@qq.com