Найти в Дзене

Дуга и хорда неизвестной окружности.

Дана дуга L и хорда M неизвестной окружности. Требуется определить максимальное расстояние между дугой и хордой H. Из тригонометрии известно: величина угла – центрального для произвольной окружности в радианах измеряется отношением длины дуги L, на которую этот угол опирается, к длине радиуса R этой окружности: α = L/R. Для проверки является ли хорда M диаметром этой окружности, а M/2, соответственно, ее радиусом, проверяем отношение L/(M/2). Возможны три варианта: первый вариант - отношение дуги к половине хорды L/(M/2) <π , рисунок 1, второй вариант L/(M/2)> π , рисунок 3 и третий вариант - L/(M/2) = π , рисунок 2. Если L/(M/2)= π, третий вариант (рисунок 2), то угол α также будет равен π или в градусах 180°. А это значит, что хорда M является диаметром окружности, а радиус R=M/2 и H=R. Для первого и второго вариантов аналитически решить данную задачу на мой взгляд невозможно. Я решил это программным путем. Для первого варианта L/(M/2) <π, сначала принимаем α= π, при этом дуга L1 бу

Дуга и хорда неизвестной окружности.

Дана дуга L и хорда M неизвестной окружности. Требуется определить максимальное расстояние между дугой и хордой H.

Из тригонометрии известно: величина угла – центрального для произвольной окружности в радианах измеряется отношением длины дуги L, на которую этот угол опирается, к длине радиуса R этой окружности: α = L/R.

Для проверки является ли хорда M диаметром этой окружности, а M/2, соответственно, ее радиусом, проверяем отношение L/(M/2).

Возможны три варианта: первый вариант - отношение дуги к половине хорды L/(M/2) <π , рисунок 1, второй вариант L/(M/2)> π , рисунок 3 и третий вариант - L/(M/2) = π , рисунок 2.

Если L/(M/2)= π, третий вариант (рисунок 2), то угол α также будет равен π или в градусах 180°. А это значит, что хорда M является диаметром окружности, а радиус R=M/2 и H=R.

Для первого и второго вариантов аналитически решить данную задачу на мой взгляд невозможно. Я решил это программным путем.

Для первого варианта L/(M/2) <π, сначала принимаем α= π, при этом дуга L1 будет больше дуги L (см. рисунок 4), а затем циклически уменьшаем текущее значение α в каждом цикле на величину, много меньшей, чем π, в соответствии заданной погрешностью расчета угла. При этом в каждом цикле определяем текущее значение R=M/ (2*sin (α/2)) и текущее значение дуги L1=R*α. Текущее значение L1 сравнивается с заданной дугой L и если L1 станет равной или меньше L то программа выходит из цикла. Далее определяется величина H. Как следует из рисунка 1, H=R-R*cos (α/2) =R*(1-cos (α /2).

Для второго варианта L/(M/2)> π , рисунок 3, сначала принимаем α= 2π, при этом дуга L1 будет больше дуги L, так как она будет равна полной окружности
2πR. Далее производим действия как в первом варианте. При этом в каждом цикле определяем текущее значение R=M/ (2*sin (α/2)), как и в первом варианте, так как в соответствии с рисунком 3
R=M/(2*sin (β/2)). Так как β=2π- α. Тогда R=M/ (2*sin (β/2)) = M/ (2*sin (π - α/2))= = M/ (2*sin (α/2)). Определение H будет также как и в первом варианте, так как в соответствии с рисунком 3
H= R+R*cos (β/2) = R+R*cos ((2π-α)/2)= R*(1-cos (α /2).

Количество циклов N должно быть таким, чтобы текущее значение угла α при последнем цикле стало меньше 0, для варианта 1 и меньше π для варианта 2. Поэтому в программе N = 100 / d * 4, где d – погрешность расчета угла в %, 4 – это первое целое число больше π. В программе угол α обозначен перемен-
ной A.

Программа на языке BASIC (БЕЙСИК).

Cls

PI = 3.141592654#

1 Input "L"; L

Input "M"; M

Input "ПОГРЕШНОСТЬ РАСЧЕТА d, %"; d

N = 100 / d * 4

If L <= M Then Print "L ДОЛЖНА БЫТЬ БОЛЬШЕ M": GoTo 1

If L / (M / 2) = PI Then 3

If L / (M / 2) < PI Then K = PI Else K = 2 * PI

For I = 1 To N

A = K - I * d / 100

R = M / (2 * Sin (A / 2))

L1 = R * A

If L1 <= L Then 2

Next I

2 H = R * (1 – Cos (A / 2))

Print "L1="; L1

Print "H="; H

Print "A="; A; "="; 180 * A / PI; "ГРАДУСОВ"

Print "R="; R

GoTo 4

3 Print "H="; M / 2

Print "A= PI"; "="; 180; "ГРАДУСОВ"

Print "R="; M / 2

4 End