Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 01.04.2019, 16:35   #1
Vitalik81311
Пользователь
 
Регистрация: 28.10.2018
Сообщений: 25
По умолчанию Аналитическая геометрия 2

Подскажите пожалуйста, мне надо чтоб угловой коэффициент переводился в градусы..., это я сделал, но он переводит только до 89, а потом ставит например -45 градусов, а мне нужно, чтоб писал 135 и так до 360...Помогите пожалуйста?
Код:
var
  Form1: TForm1;
  x1,y1,x2,y2:real;
  x0,y0:integer;
s,xe,ye:integer;
Rad,Grad,x,y,A,B:real;
dx,dy:real;
Mx,My:real;
xmin,xmax,ymin,ymax:integer;
a1,a2,b1,b2:integer;
implementation

uses Unit2, Unit3, Unit4, Unit5, Unit6;

{$R *.dfm}



procedure TForm1.Button1Click(Sender: TObject);
begin
xmin:=-3; xmax:=4; ymin:=-8; ymax:=8;
{a1:=70; a2:=307;
b1:=20; b2:=514;}
x1:=StrToFloat(Edit1.Text);
y1:=StrToFloat(Edit2.Text);
x2:=StrToFloat(Edit4.Text);
y2:=StrToFloat(Edit5.Text);

if (x2<>x1) and (y2=y1) then
messagedlg('Точки находятся параллельно оси абсцисс',mtInformation,[mbOk],0);

if (x1<xmin) or (x1>xmax) or (y1>ymax) or (y1<ymin) then
messagedlg('Введены не допустимые координаты точки Q, введите координаты входящие в предел',mtError,[mbOk],0);

if (x2<xmin) or (x2>xmax) or (y2>ymax) or (y2<ymin) then
messagedlg('Введены не допустимые координаты точки P, введите координаты входящие в предел',mtError,[mbOk],0);

if (x2=x1) and (y2=y1) then
messagedlg('Координаты точки Q и точки P совпали',mtInformation,[mbOk],0);

if (x2=x1) and (y2<>y1) then
messagedlg('Прямая проходит параллельно оси ординат, деление на ноль запрещено',mtInformation,[mbOk],0);


if abs(x1-x2)<0.00001 then  Label7.Caption :='Коэффициент и'+#13'длину отрезка'+#13'найти нельзя'
 else  begin
 A:=(y1-y2)/(x1-x2);
 B:=y2-A*x2;
 Rad:=ArcTan(A);//Перевод коэффициента в радианы
 Grad:=(180/Pi)*Rad;//Радианы переводим в градусы
Label7.Caption :='Угловой коэффициент'+#13+'A= '+FloatToStr(A)+#13+'Длина отсекаемого отрезка'+#13'B= '+FloatToStr(B)+#13+'В градусах= '+FloatToStr(Trunc(Grad))+#$B0;{код градусов #$B0}
end;//Вывод информации
with PaintBox1.Canvas do
PaintBox1.Repaint;
end;
Vitalik81311 вне форума Ответить с цитированием
Старый 01.04.2019, 17:00   #2
evg_m
Старожил
 
Регистрация: 20.04.2008
Сообщений: 5,528
По умолчанию

Цитата:
ставит например -45 градусов, а мне нужно, чтоб писал 135
135 = 180 + (-45)
программа — запись алгоритма на языке понятном транслятору
evg_m вне форума Ответить с цитированием
Старый 01.04.2019, 17:56   #3
Pavia
Лис
Старожил
 
Аватар для Pavia
 
Регистрация: 18.09.2015
Сообщений: 2,409
По умолчанию

360-45=315 никак не 135. Разве что вы MS Visio для проверки использовали.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
У дзен программиста программа делает то что он хотел, а не то что он написал .
Pavia вне форума Ответить с цитированием
Старый 01.04.2019, 21:48   #4
Vitalik81311
Пользователь
 
Регистрация: 28.10.2018
Сообщений: 25
По умолчанию

Мне подсказали сделать вот таким кодом, но я не знаю, как его и куда впихнуть в свой...?
Код:
function Ugol(x0,y0,x,y:integer):real;
begin
if (x>x0)and(y<=y0) then Ugol:=arctan((y0-y)/(x-x0)){I четверть}
else if (x>x0)and(y>y0) then Ugol:=arctan((y0-y)/(x-x0))+2*pi{IV четверть}
else if x<x0 then Ugol:=arctan((y0-y)/(x-x0))+pi{II-III четверти}
else if x=x0 then
 begin
  if y<y0 then Ugol:=pi/2{вертикально вверх}
  else if y>y0 then Ugol:=3*pi/2{вертикально вниз}
  else Ugol:=0;
 end;
end;
Vitalik81311 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Аналитическая геометрия Vitalik81311 Помощь студентам 0 22.03.2019 17:51
Аналитическая геометрия Vitalik81311 Помощь студентам 37 09.03.2019 18:23
Аналитическая таблица Slavik7777 Фриланс 1 25.11.2018 19:08
Аналитическая геометрия (1 курс) Tigrika Помощь студентам 1 05.11.2010 00:06