Advertisement
Savelyev_Vyacheslav

1_1ver2

Sep 29th, 2021 (edited)
1,077
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
MatLab 2.87 KB | None | 0 0
  1. %% https://base-n.de/matlab/code_beautifier.html
  2.  
  3. %1.1
  4. % Написать скрипт, в первом блоке которого генерируются случайные координаты
  5. % двух точек в декартовых осях (в диапазоне от -10 до 10 по каждой координате)
  6. clear
  7. clc
  8. close all % закрывает все графические окна перед запуском нового окна
  9.  
  10. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%5
  11. % cord1 = fix(-rand (1,2)*20+10); % rand (1,2)= 0-1, 0-1
  12. % cord2 = fix(-rand (1,2)*20+10);% rand (1,2)= 0-1, 0-1
  13. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  14. % Kord1 = (-floor(rand(1,2)*20)+10); % rand (1,2)= 0-1, 0-1
  15. % Kord2 = (-floor(rand(1,2)*20)+10);% rand (1,2)= 0-1, 0-1
  16. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  17. %  cord1 = fix((rand(1,2))-0.5*10); % rand (1,2)= 0-1, 0-1
  18. %  cord2 = fix((rand(1,2)-0.5)*10);% rand (1,2)= 0-1, 0-1
  19. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%5
  20. mark = (-1)^floor(rand(1)*10);
  21.  XY11 = (rand(1)-0.5)*10*(-1)^floor(rand(1)*10); % rand (1,2)= 0-1, 0-1
  22.  XY22 = (rand(1)-0.5)*10*(-1)^floor(rand(1)*10);% rand (1,2)= 0-1, 0-1
  23.  YX11 = (rand(1)-0.5)*10*(-1)^floor(rand(1)*10); % rand (1,2)= 0-1, 0-1
  24.  YX22 = (rand(1)-0.5)*10*(-1)^floor(rand(1)*10);% rand (1,2)= 0-1, 0-1
  25.  cord1 = [XY11,XY22];
  26.  cord2 = [YX11,YX22];
  27. %  cord1=[0,7];
  28. %  cord2=[7,7];
  29. %построить в графическом окне обе точки и прямую, проходящую через них;
  30. grid on % включает сетку
  31. hold on % включает наложение графиков
  32. % plot([-10:0.01:10],0,'.k'); % ось X
  33. % plot(0,[-10:0.01:10],'.k'); % ось Y
  34. % text(0,10,'  Y'); % надпись на оси
  35. % text(10,0,'  X'); % надпись на оси
  36. % plot(cord1(1),cord1(2), '*r'); % первая точка
  37. %
  38. % % text(cord1(1),cord1(2),'  A'); % надпись на оси A
  39. %
  40. % plot(cord2(1),cord2(2), '*b'); % вторая точка
  41.  
  42. % text(cord2(1),cord2(2),'  B'); % надпись на оси B
  43.  
  44. % вывести в командное окно уравнение этой прямой (в виде y = 4*x - 0.75);
  45. tangens = (cord1(2) - cord2(2))/(cord1(1) - cord2(1));
  46. shift = cord1(2) - (cord1(1) * tangens);
  47. PrX = -10:(0.1):10;
  48. PrY = PrX*(tangens)+shift;
  49. chek1 = cord1(1)==cord2(1);
  50. chek2 = cord1(2)==cord2(2);
  51. if (chek1 && chek2)
  52.     PrX=-10:(0.1):10;
  53.     shift = cord1(1);
  54.     PrX=(PrX-PrX)+shift;
  55.     PrY=PrX;
  56. else
  57.     if (chek2)
  58.         shift = cord1(2);
  59.         PrX=-10:(0.1):10;
  60.         PrY=(PrY-PrY)+shift;
  61.     end  
  62.      if (chek1)
  63.         shift = cord1(1);
  64.         PrX=(PrX-PrX)+shift;
  65.         PrY=-10:(0.1):10;
  66.     end
  67.  
  68. end
  69.  
  70.  
  71.  
  72. plot(PrX,PrY,'*m-');
  73.  
  74. Mark = '+';
  75. if (shift < 0)
  76.     Mark = '-';
  77. end  
  78. disp(['Уравнение y = ', num2str(tangens),'*x ',Mark,' ',num2str(abs(shift))]);
  79.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement