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)

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

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

你的代码通过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')

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]

先学基础,然后自己实践一段时间,你一可以到网上看一些电脑视频.然后看电脑书,你也可以去培训一下.

估计危险 1000?? 一个好的CPU 就那个价格了 不过也有便宜的 建议CPU用AMD的 350元 主板用那种集成显的 400元 内存 1G 150元 还有100呢 就弄个2手的硬盘至于机箱就用木头板子订一个o(∩_∩)o哈哈

[x,y,z]=solve('(x1-x)^2+(y1-y)^2+(z1-z)^2=r1^2', '(x2-x)^2+(y2-y)^2+(z2-z)^2=r2^2','(x3-x)^2+(y3-y)^2+(z3-z)^2=r3^2','x','y','z')

用两点之间距离公式

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