![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как найти угол между отрезком и осью(любой )
TRyaSS © (2006-04-25 09:49:00)хоть Х, хоть У.Подскажите плз. Даны только координаты точек...
a22 (2006-04-26 17:37:00) [1]млин я вообще еще и очепятался со сторонами, b/a
TRyaSS (2006-04-25 16:41:00) [2]Спасибо. че-то из головы вылетело ...
a22 (2006-04-25 16:06:00) [3]нет, ну это ж за 8 или 9 класс математика
/|
c/ | b
/g_|
a
c, a, b - стороны треугольника, g - угол... вот ежели есть точки отрезка, значит есть и a, b
далее tg(g) = b/c -> g = arctg(b/c)
это угол с осью Х, есть нужен с осью Y - ну, картинку треугольника мысленно перевернуть надо. наоборот в частном получится
AbrosimovA (2006-04-25 12:18:00) [4]
uses Math;
procedure TForm1.Button1Click(Sender: TObject);
var a: extended; // угол в градусах
y1,x1,y2,x2: extended; //координаты точек
begin
(*
y1 = k*x1 + b; y2 = k*x2 + b ->
-> b = y1 - k*x1; b = y2 - k*x2 ->
-> y1 - k*x1 = y2 - k*x2 ->
-> y1 - y2 = k * (x1 - x2) ->
-> k:=(y1-y2) / (x1-x2) = tan(a) ->
-> a = arctan(k) = arctan((y1-y2) / (x1-x2))
*)
DecimalSeparator:='.';
y1:=0.0;
x1:=0.0;
y2:=4.0;
x2:=3.0;
a:=RadToGrad(arctan((y1-y2) / (x1-x2)));
Caption:=FloatToStr(a) // ~ искомый угол к оси X
end;
AbrosimovA (2006-04-25 12:14:00) [5]
procedure TForm1.Button1Click(Sender: TObject);
var a: extended; // óãîë â ãðàäóñàõ
y1,x1,y2,x2: extended; //êîîðäèíàòû òî÷åê
begin
(*
y1 = k*x1 + b; y2 = k*x2 + b ->
-> b = y1 - k*x1; b = y2 - k*x2 ->
-> y1 - k*x1 = y2 - k*x2 ->
-> y1 - y2 = k * (x1 - x2) ->
-> k:=(y1-y2) / (x1-x2) = tan(a) ->
-> a = arctan(k) = arctan((y1-y2) / (x1-x2))
*)
DecimalSeparator:='.';
y1:=0.0;
x1:=0.0;
y2:=4.0;
x2:=3.0;
a:=RadToGrad(arctan((y1-y2) / (x1-x2)));
Caption:=FloatToStr(a) // ~ èñêîìûé óãîë ñ îñüþ X
end;