Savelyev_Vyacheslav

Kontr_1_ver2

Sep 28th, 2021 (edited)
328
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
MatLab 1.90 KB | None | 0 0
  1. %1.1
  2. % Написать скрипт, в первом блоке которого генерируются случайные координаты двух точек в декартовых осях (в диапазоне от -10 до 10 по каждой координате)
  3. clear
  4. clc
  5. close all % закрывает все графические окна перед запуском нового окна
  6. cordA = floor(rand (1,2)*20-10);
  7. cordB = floor(rand (1,2)*20-10);
  8. % cordA=[7,7];
  9. % cordB=[7,7];
  10. %построить в графическом окне обе точки и прямую, проходящую через них;
  11. grid on % включает сетку
  12. hold on % включает наложение графиков
  13. plot([-10:0.01:10],0,'.k'); % ось X
  14. plot(0,[-10:0.01:10],'.k'); % ось Y
  15. text(0,10,'  Y'); % надпись на оси
  16. text(10,0,'  X'); % надпись на оси
  17. plot(cordA(1),cordA(2), '*r'); % первая точка
  18. text(cordA(1),cordA(2),'  A'); % надпись на оси A
  19. plot(cordB(1),cordB(2), '*b'); % вторая точка
  20. text(cordB(1),cordB(2),'  B'); % надпись на оси B
  21.  
  22. % вывести в командное окно уравнение этой прямой (в виде y = 4*x - 0.75);
  23. tangens = (cordA(2) - cordB(2))/(cordA(1) - cordB(1));
  24. shift = cordA(2) - (cordA(1) * tangens);
  25. PrX = -10:(0.1):10;
  26. PrY = PrX*(tangens)+shift;
  27. chek1=cordA(1)==cordB(1);
  28. if (chek1 && chek2)
  29.     PrX=-10:(0.1):10;
  30.     shift = cordA(1);
  31.     PrX=(PrX-PrX)+shift;
  32.     PrY=PrX;
  33. end
  34. if (chek1)
  35.     shift = cordA(1);
  36.     PrX=(PrX-PrX)+shift;
  37.     PrY=-10:(0.1):10;
  38. end
  39. chek2=cordA(2)==cordB(2);
  40. if (chek2)
  41.     shift = cordA(2);
  42.     PrX=-10:(0.1):10;
  43.     PrY=(PrY-PrY)+shift;
  44. end
  45.  
  46.  
  47. plot(PrX,PrY,'.m-');
  48.  
  49. Mark = '+';
  50. if (shift < 0)
  51.     Mark = '-';
  52. end  
  53. disp(['Уравнение y = ', num2str(tangens),'*x',Mark,num2str(abs(shift))]);
Add Comment
Please, Sign In to add comment