- •Цель работы
- •Задание на лабораторную работу
- •Задание 1. Нахождение точек пересечения двух кривых
- •Задание 2. Нахождение точки экстремума функции
- •Задание 3. Найти координаты оснований перпендикуляров
- •Приложение б
- •Задание 4. Основание перпендикуляра, опущенного из точки на окружность
- •Задание 5. Изобразить точки, касательная которых имеет угол наклона
- •Задание 6. Написать программу, которая строит график сферы или пирамиды по выбору пользователя
- •Задание 7. Написать программу, которая строит график прозрачного куба или конуса по выбору пользователя
- •Приложение в
- •Приложение г
- •Приложение д
- •Приложение е
- •Приложение ж
- •Приложение и
- •Приложение к
Приложение д
Листинг задания 5
alpha=input('Vvediteugolnaklona : ');
if (alpha==90)
k='Error! Print another angle!'
else
k=tan(alpha*pi/180);
syms x y yd
y=(5+x).*(5-x);
yd=diff(y)
x0=fzero(inline(yd-k),1)
y0=(5+x0)*(5-x0)
x_p=-10:0.1:10;
y_p=(5-x_p).*(5+x_p);
plot(x_p, y_p);
hold on
plot(x_p(1), y_p(1), 'g+')
hold on
plot(x_p(length(x_p)), y_p(length(y_p)), 'g+')
hold on
a=-10:0.1:10;
b=k*(a-x0)+y0;
%plot(a,b,'r')
%plot(x0,y0, 'xg')
xlabel('Ось X');
ylabel('Ось Y');
Title('Задание 5. Нахождение точки, где касательная имеет угол наклона')
grid on
legend('Заданная функция', 'Граничные точки', 2);
end
axis('equal')
Приложение е
Листинг задания 6
function func6()
s=input('Введите тип фигуры [сфера/пирамида]: ')
if strcmp(s,'сфера')
R0=input('Радиус: ')
[X,Y,Z] = sphere(30)
surf(R0*X,R0*Y,R0*Z)
axis equal
alpha 0
grid on
title('Задание 6: Графикпрозрачнойсферы')
else
if strcmp(s,'пирамида')
x0=input('Высота: ')
y0=input('Длина ребра: ')
x(1)=y0/2
x(2)=-y0/2
x(3)=-y0/2
x(4)=y0/2
y(1)=y0/2
y(2)=y0/2
y(3)=-y0/2
y(4)=-y0/2
z(1:5)=0
xc=0
yc=0
zc=x0
for i=1:4
XX(i,1)=x(i)
XX(i,2)=xc
YY(i,1)=y(i)
YY(i,2)=yc
ZZ(i,1)=z(i)
ZZ(i,2)=zc
end
XX(5,1)=x(1)
XX(5,2)=xc
YY(5,1)=y(1)
YY(5,2)=yc
ZZ(5,1)=z(1)
ZZ(5,2)=zc
surf(XX,YY,ZZ)
alpha 0
grid on
axis([-7 7 -7 7 -2 6])
title('Задание 6: График прозрачной квадратной пирамиды')
else
input ('Ошибка!')
end
end
Приложение ж
Листинг задания 7
function func7()
f_type = input('Введитетипфигуры - [куб/конус]: ')
if strcmp(f_type,'куб')
r = input('Длина ребра: ')
Z = [0 0 0 0 0 r r 0 r r 0 r r 0 r r]
Y = [0 r r 0 0 0 r r r r r r 0 0 0 0]
X = [0 0 r r 0 0 0 0 0 r r r r r r 0]
plot3(X,Y,Z,'k')
grid on
alpha 0
axis equal
grid on
title('Задание 7: График прозрачного куба')
else if strcmp(f_type,'конус')
h = input('Высота: ')
r = input('Радиус: ');
[x,y,z]=cylinder([r 0],30)
surf(x,y,h*z)
alpha 0
axis equal
grid on
title('Задание 7: График прозрачного конуса')
else
input ('Ошибка!')
end
end
axis([-5 5 -5 5 -1 5])
Приложение и
Листинг задания 8
BW = imread('bw.bmp');
color = input('Введите цвет - [красный/зеленый/синий]: ')
if strcmp(color, 'красный')
imshow(BW,[1 0 0; 1 1 1])
else
if strcmp(color,'зеленый')
imshow(BW,[0 1 0; 1 1 1])
else
if strcmp(color,'синий')
imshow(BW,[0 0 1; 1 1 1])
else
input ('ошибка')
end
end
end
Приложение к
Листинг задания 9
BW = imread('bw.bmp');
L1 = ~BW
angle = 0
color = input('Введите угол поворота - [0/90/180/270]: ')
switch color
case '90'
angle = 90
case '180'
angle = 180
case '270'
angle = 270
otherwise
angle = 0
end
L1=imrotate(L1, angle, 'bicubic');
figure,imshow(L1)
