Построить плоскость на основе нормального вектора и точки в Matlab или matplotlib

В качестве альтернативы, если у вас есть доступ к файлу .htaccess на вашем сервере, вы можете добавить простую директиву, которая позволит интерпретировать php в файлах, заканчивающихся расширением .html.

RemoveHandler .html
AddType application/x-httpd-php .php .html

Теперь вы можете использовать простой PHP-скрипт для включения других файлов, таких как:

<?php include('b.html'); ?>
33
задан Nikolay Fominyh 17 February 2017 в 08:30
поделиться

1 ответ

Для Matlab:

point = [1,2,3];
normal = [1,1,2];

%# a plane is a*x+b*y+c*z+d=0
%# [a,b,c] is the normal. Thus, we have to calculate
%# d and we're set
d = -point*normal'; %'# dot product for less typing

%# create x,y
[xx,yy]=ndgrid(1:10,1:10);

%# calculate corresponding z
z = (-normal(1)*xx - normal(2)*yy - d)/normal(3);

%# plot the surface
figure
surf(xx,yy,z)

enter image description here

Примечание: это решение работает только до тех пор, пока нормаль (3) не равна 0. Если плоскость параллельна оси z, вы можете повернуть размеры так, чтобы придерживайтесь того же подхода:

z = (-normal(3)*xx - normal(1)*yy - d)/normal(2); %% assuming normal(3)==0 and normal(2)~=0

%% plot the surface
figure
surf(xx,yy,z)

%% label the axis to avoid confusion
xlabel('z')
ylabel('x')
zlabel('y')
29
ответ дан 27 November 2019 в 17:42
поделиться
Другие вопросы по тегам:

Похожие вопросы: