Поверхности второго порядка
Автор: patrik12345 • Ноябрь 19, 2018 • Лабораторная работа • 303 Слов (2 Страниц) • 452 Просмотры
МОСКОВСКИЙ АВИАЦИОННЫЙ ИНСТИТУТ
(НАЦИОНАЛЬНЫЙ ИССЛЕДОВАТЕЛЬСКИЙ УНИВЕРСИТЕТ)
ЛАБОРАТОРНАЯ РАБОТА №7
«Поверхности второго порядка»
ВАРИАНТ №17
Выполнил студент
группы 7О-101С
Бородай Иван Юрьевич
Проверили:
Кривилев Александр Владимирович
Козлова Нина Михайловна
Пенкин Сергей Сергеевич
2015г.
Задание : Построить конус второго порядка, заданный с помощью канонического уравнения -[pic 1], где a=1.5, b=2.5, c=1 b h [pic 2] [-3-a;-a] [pic 3] [a;a+3]. Повернуть поверхность оси [pic 4] на 60 Задать цветовую палитру flag. Ориентировать цвет поверхности по оси X. Исследовать влияние значений коэффициентов уравнений и цветовой палитры на вид поверхности.
a = 1.5; b = 2.5; c = 1; % параметры гиперболоида
h = [-3-a:0.1:-a, a:0.1:a+2]; % сечения гиперболоида
g = 60*pi/180; % угол поворота по оси z
theta = [0:pi/16:2*pi]'; % долгота
b = b*sqrt(h.^2./a.^2-1); c = c*sqrt(h.^2./a.^2-1);
% значения узловых точек двуполостных гиперболоидов
X = ones(size(theta),1)*h; Y = cos(theta)*b; Z = sin(theta)*c;
% выполнение поворота вокруг оси z
Rz = [cos(g),-sin(g),0; sin(g),cos(g),0; 0,0,1]; % матрица поворота вокруг оси z
XYZ(:,:,1) = X; XYZ(:,:,2) = Y; XYZ(:,:,3) = Z;
XYZ = permute(XYZ, [3 2 1]);
for page = 1:size(XYZ,3)
XYZ(:,:,page) = Rz*XYZ(:,:,page);
end
XYZ = ipermute(XYZ, [3 2 1]);
X = XYZ(:,:,1); Y = XYZ(:,:,2); Z = XYZ(:,:,3);
% создание графического окна и задание его свойств
figure('NumberTitle', 'off', 'Name', 'Двуполостный гиперболоид')
colormap(flag) % задание цветовой палитры
% построение поверхности
surf(X, Y, Z, 'EdgeColor', 'none', 'FaceColor', 'interp', 'CData', X)
hold on % режим наложения графиков
% оформление координатного пространства
line([min(min(X)) max(max(X))], [0 0], [0 0], 'LineWidth', 1)
...