На схеме показано построение коробовой кривой ( овала ).
Отрезок АО – половина большей оси овала. Отрезок ВО – половина меньшей оси овала.
Rb – Большой радиус овала. Rм – Малый радиус овала. Остальное понятно из чертежа.
Построенная коробовая кривая отличается от овала – но для большенства расчетов различие
является несущественным. Данный расчет применяется к определению формы резинового кольца при сжатии в осевом направлении.
Листинг программы.
# -*– coding: cp1251 -*-
import math # Подключили математич модуль
# Проверено и геометрически тоже 15-12-2015 г..
ug=0.000000
Uu=" "
u=" Расчет параметров овала ( коробовой кривой ) "
print (uu)
print (uu)
print (u)
u1=u
print (uu)
u=" ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, "
print (uu)
print (u)
print (uu)
u=" Вводим больший габаритный размер овала "
print (u)
print (uu)
x1=0.00000000
x1=input( ) # Вводим число
x1=float(x1) # Принудительно в вещественное число
u=" Вводим меньший габаритный размер овала "
print (u)
print (uu)
y1=0.00000000
y1=input( ) # Вводим число
y1=float(y1) # Принудительно в вещественное число
# .................................................................................
Pii=math.pi # Вытащили число " Пи "
oa=x1/2 # Большая полуось овала
ob=y1/2 # Малая полуось овала
pb=oa-ob
tb=pb
x=(oa*oa)+(ob*ob)
ab=math.sqrt(x) # Квадратный корень из " x "
at=ab-tb
xt=at/2
ao1=(xt*ab)/oa # Малый радиус
bk=(ab*(xt+pb))/ob # Большой радиус
x=ob/oa
ua=math.atan(x) # АрксТангенс от Х
# ua – Угол четвертинки сектора большого круга
ub=(Pii/2)-ua # Угол четвертинки сектора малого круга
Sb=Pii*bk*bk # Площадь круга с Большим радиусом
Sm=Pii*ao1*ao1 # Площадь круга с Малым радиусом
Sbs=Sb*2*ua/Pii # Площадь секторов с Большим радиусом
Sms=Sm*2*ub/Pii # Площадь секторов с Малым радиусом
ko=bk-ob
oo1=oa-ao1
Str=2*ko*oo1 # Площадь четырех вычитаемых треугольников
So=(Sms+Sbs)-Str
xu=ua*360/Pii # Угол раствора Б. радиусов
x=4*So/Pii
Ds=math.sqrt(x) # Диаметр равного по площади – круга
x=xu/2
Pp=((ao1*(90-x))+(bk*x))*Pii/45 # Периметр овала.
# .................................................................................
u=" ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, "
print (uu)
print (u)
u2=u
print (uu)
u=" Большая ось овала = "
ss=str(x1) # Преобразуем число в строку
u=u+ss
print (u)
u3=u
print (uu)
u=" Меньшая ось овала = "
ss=str(y1) # Преобразуем число в строку
u=u+ss
print (u)
u4=u
print (uu)
u=" Больший радиус = "
ss=str(bk) # Преобразуем число в строку
u=u+ss
print (u)
u5=u
print (uu)
u=" От оси до центра Б. радиуса = "
ss=str(ko) # Преобразуем число в строку
u=u+ss
print (u)
u6=u
print (uu)
u=" Меньший радиус = "
ss=str(ao1) # Преобразуем число в строку
u=u+ss
print (u)
u7=u
print (uu)
u=" От оси до центра M. радиуса = "
ss=str(oo1) # Преобразуем число в строку
u=u+ss
print (u)
u8=u
print (uu)
u=" Угол раствора Б. радиусов = "
ss=str(xu) # Преобразуем число в строку
u=u+ss
print (u)
u9=u
print (uu)
u=" Периметр овала = "
ss=str(Pp) # Преобразуем число в строку
u=u+ss
print (u)
u10=u
print (uu)
u=" Площадь овала = "
ss=str(So) # Преобразуем число в строку
u=u+ss
print (u)
u11=u
print (uu)
u=" Диаметр равного по площади – круга = "
ss=str(Ds) # Преобразуем число в строку
u=u+ss
print (u)
u12=u
print (uu)
print (uu)
# ..... ..... ..... ..... ....
f = open('Rezult.txt', 'w') # Открыли файл для записи
# Записываем числа в текстовом виде
u=uu+"\n" # Добавим код перевода строки
f.write(u)
u=u1+"\n"
f.write(u)
uu=" "+"\n"
f.write(uu)
u=u2+"\n"
f.write(u)
f.write(uu)
u=u3+"\n"
f.write(u)
u=u4+"\n"
f.write(u)
f.write(uu)
u=u5+"\n"
f.write(u)
u=u6+"\n"
f.write(u)
u=u7+"\n"
f.write(u)
u=u8+"\n"
f.write(u)
u=u9+"\n"
f.write(u)
u=u10+"\n"
f.write(u)
u=u11+"\n"
f.write(u)
u=u12+"\n"
f.write(u)
f.write(uu)
f.close() # закрыли файл
# ..... ..... ..... ..... ....
input( ) # Ожидание нажима Ентер
u=" ...... ...... ...... Конец программы ...... ...... ...... "
print (u)
print (uu)
input( ) # Ожидание нажима Ентер
# ..... ..... ..... Конец листинга программы ..... .…