1. Корн Г., Корн Т. Справочник по математике для научных работников и инженеров. – М.: Наука, 1973. – 832 с.
2. Зиновьев В.А. Курс теории механизмов и машин. – М.: Наука, 1975. – 204 с.
3. Левитский Н.И. Теория механизмов и машин. – М.: Наука, 1990.
4. Пейсах Э.Е., Нестеров В.А. Система проектирования плоских рычажных механизмов / Под ред. К.В.Фролова. – М.: Машиностроение, 1988. – 232 с.
5. Пейсах Э.Е. Определение положения звеньев трехповодковой и двух поводковой четырехзвенных структурных групп Ассура с вращательными парами. // Машиноведение. 1985. №5. С. 55-61.
6. Морошкин Ю. Ф. Доклады АН СССР. Т82, 1952, №4.
7. Артоболевский И.И. Теория механизмов и машин. – М.: Наука, 1975. – 640 с.
8. Джолдасбеков У.А., Байгунчеков Ж.Ж. Аналитическая кинематика плоских рычажных механизмов высоких классов. Алма-Ата: изд. Казах. гос. ун-та, 1980. – 105 с.
9. Озол О.Г. Аналитический метод треугольников в кинематике плоских рычажных механизмов. В кн.: Анализ и синтез механизмов. – М.: Машиностроение, 1966. С. 128-144.
10. Пейсах Э.Е. Синтез шарнирного шестизвенника с приближенным выстоем. // Механика машин. – М.: Наука, 1971, Вып. 29-30. С. 100-107.
11. Пейсах Э.Е. Справочные карты по синтезу шарнирного шестизвенника. // Механика машин. – М.: Наука, 1974. Вып. 44. С. 125-139.
12. Доронин В.И. Применение алгебраического метода в кинематическом синтезе плоских механизмов. // Изв. вузов. Сер. Машиностроение, 1968, №6. С. 5-9.
13. Тереньтьев В.Ф. Аналитический синтез шестизвенного шарнирно-рычажного механизма. // Изв. вузов. Сер. Машиностроение, 1976, №12. С. 65-68.
14. Доронин В.И., Рачек Н.М. Синтез шарнирных передаточных механизмов с помощью ЭЦВМ. // Механика машин. – М.: Наука, 1969. Вып. 15-16. С. 24-35.
15. Пейсах Э.Е. Оптимизационно-квадратический синтез плоских рычажных механизмов. // Машиноведение. 1986. №5. С. 71-77.
16. Муратов А.И. Синтез плоских рычажных механизмов высоких классов. // Механика машин. – М.: Наука. 1980. Вып. 57. С. 10-14.
17. Джолдасбеков У.А. Оптимальный синтез плоских рычажных механизмов высоких классов. / Вестник АН Казахской АССР Алма-Ата, 1981. Вып. 7. С. 35-41.
18. Макговерн (McGovern J.F.) Сандор (Sandor G.N.) Кинематический синтез регулируемых механизмов. Часть 2. Воспроизведение шатунных кривых. КиТМ, 1973, №2. С. 7-13.
19. Саркисян Ю.Л. К теории синтеза плоских шарнирных механизмов методом квадратического приближения функции. // Изв. АН Арм.ССР. Машиностроение, 1976. XXIX, №6. С. 3-9.
20. Доронин В.И. К синтезу шарнирно-рычажных направляющих механизмов методом квадратического приближения. // Труды ХабИИЖТа, вып. 29, 1967. С. 149-155.
21. Chi-Yeh H., A General Method for the Optimum Design of Mechanisms. Journal of Mechanisms. Vol. 1, 1966. pp. 301-313.
22. Mansour W.M., Osman M.O.M. The Method of Residues for the Synthesis of Coupler Curve Genarating Mechanisms. ASME Paper 70- Mech-53.
23. Hartley H.O. The Modified Gauss – Newton Method for the Fitting of Nonlinear Regression by Least Squares. Technometrics. vol. 3, 1961, pp. 269-280.
24. Эшенбах, Тесар Оптимизация шарнирных четырехзвенников, удовлетворяющих четырем обобщенным положениям в одной плоскости. // Конструирование и технология машиностроения. Изд. Мир. №1, 1969. С. 79.
25. Гаррет, Холл мл. Оптимизационный синтез многозвенников при помощи метода статистических испытаний. // Конструирование и технология машиностроения. Изд. Мир. №3, 1968. С. 40.
26. Nolle H. On Capability of Four Bar Mechanisms as Function Generators. Inst. Engrs. Australia, Mech. and Chem. Eng. Trans., VMC-3, #2, Nov. 1967, pp. 259-268.
27. Tomas IV J. The Synthesis of Mechanisms as Nonlinear Programming Problem. Journal of Mechanisms. Vol. 3, 1968. pp. 119-130.
28. Фокс (Fox R.L.), Уиллмерт (Willmert K.D.) Проектирование оптимальных механизмов, воспроизводящих заданную шатунную кривую при ограничениях в форме неравенств. // Конструирование и технология машиностроения. Изд. Мир. №1, 1967. С. 169.
29. Беллман Р.Э. Динамическое программирование. М.: Изд. Иностр. лит., 1960. – 400 с.
30. Gustavson R.E. Computer-Designed Car Window linkage. // Mechanical Engineering, September 1967. Pp. 45-51.
31. Льюис (Levis D.W.), Джиори (Gyory C.K.) Кинематический синтез плоских кривых. // Конструирование и технология машиностроения. Изд. Мир. №3, 1969. С. 96.
32. Багси (Bagsi C.), Ли (In-Ping Jack Lee) Оптимальный синтез плоских механизмов для воспроизведения траекторий и положений твердого тела с помощью метода линейной суперпозиции. // Конструирование и технология машиностроения. Изд. Мир. №1, 1975. С. 331-336.
33. Пейсах Э.Е. Критерии передачи движения для рычажных механизмов // Машиноведение. 1986, №1. С. 45-51.
34. Нечи (Nechi A.J.) Применение комбинации релаксационного и градиентного методов при моделировании на вычислительной машине плоской четырехшарнирной цепи. // Конструирование и технология машиностроения. Изд. Мир. №1, 1971. С. 106-113.
35. Льюис (Levis D.W.), Джиори (Gyory C.K.) Кинематический синтез плоских кривых. // Конструирование и технология машиностроения. Изд. Мир. №1, 1967. С. 202.
36. Пейсах Э.Е. Оптимизационный синтез рычажных механизмов. /Расчет и конструирование механизмов и деталей приборов. Л.: Машиностроение, 1975. С. 38-75.
37. Пейсах Э.Е. Метод блокируемых зон в синтезе шарнирно-рычажных механизмов // Механика машин. М.: Наука, 1969. Вып. 21-22. С. 15-28.
38. Reber. J. Neue Moglichkeiten bei der Syntese ebener Mechanismen durch iterative Analyse im Sinn von CAD. // Maschinenbautechnik, 1986. №6, s. 268-270.
39. Jonson A.L. The analysis of planar mechanisms by computer subroutine. //“Proc. 6th World Congr. Theory Mach. and Mech., New Delhi, Dec. 15-20, 1983. Vol.2.” New York e.a., 1984, p. 1252-1255.
40. Кикин А.Б., Пейсах Э.Е. Применение ПК в проектировании и исследовании рычажных механизмов. Труды международной конференции “Персональные компьютеры в проектировании и исследовании механизмов и агрегатов”, Санкт‑Петербург, 1996, с. 20-26.
41. Kikin A. B., Peisach E.E. SYNMECH: The computer system on synthesis of plane linkages. The Seventh International Symposium on Linkages and Computer Aided Design Methods – Theory and Practice of Mechanisms. SYROM’97. Bucharest, Romania, August 26‑30, 1997, Vol. 1, pp. 227-234.
42. Нестеров В.А., Пейсах Э.Е. База знаний по анализу и синтезу рычажных механизмов в компьютерной системе LINKAGES. // Вестник Московского авиационного института. 1995. №1. С.51-58.
43. Bawab S., Sabada S., Srinivasan U., Kinzel G.L., Waldron K.L. Automatic synthesis of crank driven four-bar mechanisms for two, three or four-position motion generation. // Trans. ASME J. Mech., Transmiss, and Autom. Des. 1997. №2, С.225-231.
44. Christem G., Quast V., Buchheem A.U. Auswahl funfglidriger Koppelmechanismen fur Bewegungsaufgaben mittels shneller Bahnkurvensimulation. // Konstruktion. 1994. №4. С.155-160.
45. Джолдасбеков У.А., Казыханов Х.Р., Петухов В.К. Машинный анализ кинематики механизмов. // Материалы I Всесоюзного съезда по ТММ, Алма‑Ата, Наука, 1977. с. 45.
46. Архипов Н.Н., Карпачев П.С., Майзель М.М., Плевако Н.А. Основные процессы, машины и аппараты легкой промышленности. – М.: Ростехиздат, 1961. – 492 с.
47. Архипов Н.Н., Карпачев П.С., Майзель М.М., Плевако Н.А. Основы конструирования и расчета типовых машин и аппаратов легкой промышленности. – М.: Машгиз, 1963. – 599 с.
48. Вальщиков Н.М., Зайцев Б.А., Вальщиков Ю.Н. Расчет и проектирование машин швейного производства. – Л.: Машиностроение, 1973. - 344 с
49. Гарбарук В.П. Расчет и конструирование основных механизмов челночных швейных машин. – Л.: Машиностроение, 1977. - 232 с.
50. Комиссаров А.И., Жуков В.В., Никифоров В.М., Сторожев В.В. Проектирование и расчет машин обувных и швейных производств. – М.: Машиностроение, 1978. – 431 с.
51. Маракушев Е.А., Русаков С.И., Эппель С.С. Машины швейного производства. Киев: Техника, 1967. - 321 с.
52. Полухин В.П., Рейбарх Л.Б. Швейные машины цепного стежка. – М.: Легкая индустрия, 1976. 352 с.
53. Полухин В.П., Милосердный Л.К. Конструктивно-унифицированный ряд швейных машин класса 31 с горизонтальной осью челнока. – М.: Легпромбытиздат, 1991. – 80 с.
54. Рейбарх Л.Б. Оборудование швейного производства. Л.: Легпромбытиздат, 1988. – 286 с.
55. Русаков С.И. Технология машинных стежков и наладка швейных машин. М.: Гизлегпром. 1959.
56. Червяков Ф.И. Швейные машины. / Ф.И.Червяков, А.А.Никоненко. – М.: Машиностроение, 1976. – 415 с.
57. Рубцов Б.А. Лабораторный практикум по машинам и аппаратам швейного производства: Учеб. пособие для вузов. – М.: Легпромбытиздат, 1995. – 256 с.
58. Исаев В.В. Оборудование швейных предприятий: Учеб. для проф.-техн. училищ. – 3-е изд., испр. и доп. – М.: Легпромбытиздат, 1989. – 336 с.
59. Франц В.Я. Исаев В.В. Швейные машины. – М.: Легпромбытиздат, 1986. – 181 с.
60. Полухин В.П. Проектирование механизмов швейно-обметочных машин. М.: Машиностроение, 1972. 280 с.
61. Mende S. Systematische Analyse der Transporteurgetribe von Nachmaschinen. // Textiltechnik, 1987, №9, s. 515-516
62. Закарая М.М., Гусаров А.В., Сторожев В.В. Анализ структурных ошибок в механизмах перемещения материала машин беспосадочного шва. // Техн., технол. и улучш. качества изделий легкой пром-сти. – М., 1990. С. 109-113.
63. Дзюба В.И., Орловский Б.В. Сравнительный анализ механизмов перемещения деталей и изделий, стачиваемых на швейной машине. // Изв. вузов. Технология легкой промышленности. 1982. №5 С. 101-106.
64. Милосердный Л.К. Разработка конструктивно-унифицированного ряда швейных машин с горизонтальной осью челнока: Автореф. … кан. техн. наук. М., 1989.
65. Сункуев Б.С., Рачок В.В., Ольшанский В.И., Смирнова В.Ф., Яцук А.А. К вопросу унификации механизмов швейных машин. // Соверш. техн. и технол. производств легкой пром-сти. М., 1981. С. 123-126.
66. Щербань Ю.Ю., Горобец В.А. Сравнительный анализ механизмов перемещения материалов швейных машин. // Изв. вузов. Технология легкой промышленности. 1989. №6. С. 106-109.
67. Щербань Ю.Ю. Горобец В.А. Алгоритм анализа структур механизмов с неголономными связями. // Киев. технол. ин-т легк. пром-сти. Киев, 1989.
68. Щербань Ю.Ю. Горобец В.А. Разработка адаптивного механизма перемещения материала. // Киев. технол. ин-т легк. пром-сти. Киев, 1989.
69. Щербань Ю.Ю. Горобец В.А., Скатерной В.А. Исследование механизмов комбинированной реечной подачи материала швейной машины. // Киев. технол. ин-т легк. пром-сти. Киев, 1986.
70. Павлова О.А., Прилепина М.А., Лопандин И.В., Юрьева Т.М. Разработка методов кинематического и динамического исследования многозвенных механизмов машин легкой промышленности с помощью ЭЦВМ единой серии и алгоритмического языка Фортран IV. // Повышение эффективности технол. проц. и оборуд в тектильной и легкой пром-сти. М., 1986. С. 72-73.
71. Щербань Ю.Ю., Горобец В.А. Исследование механизмов перемещения материалов швейных машин с верхней и нижней транспортирующей рейками. // Изв. вузов. Технология легкой промышленности. 1986. №2. С. 119-122.
72. Zhao Xifang, Zhang Zongming. Исследование механизма перемещения материала. // J. Shanhai Jiaotoung Univ. 1984. №6. С. 97-106.
73. Low Wangjiang, Hua Danian. Исследование кинематики механизмов продвижения материала. // J. China Text. Univ. 1992, №5. С. 63-72.
74. Щербань Ю.Ю. Горобец В.А. Алгоритм решения математической модели комбинированного перемещения материала. // Киев. технол. ин-т легк. пром-сти. Киев, 1986.
75. Лопандин И.В., Попов Ю.А., Юрьева Т.М. Система продвижения ткани «рейка - отклоняющаяся игла» в промышленных швейных машинах и ее анализ с помощью ЭВМ. // Автоматизация и комплексная механизация производственных процессов легкой промышленности. М., 1988. С. 68-74.
76. Ермолаев В.Ф., Лишанков В.А., Новгородцев В.А. Проектирование при помощи ЭВМ реечного механизма подачи материала. // Изв. вузов Технология легкой промышленности. 1979. №5 С. 124-128.
77. Сункуев Б.С. К синтезу регулируемых шестизвенных механизмов транспортирования ткани швейных машин. // Изв. вузов. Технология легкой промышленности. 1973, №3. С. 131-138.
78. Новгородцев В.А., Ермолаев В.Ф. Проектирование механизма импульсной подачи материала швейной машины. / Анал., динам. и применение сил. импульс. систем. Новосибирск, 1986. С. 115-122.
79. Смирнова В.Ф., Шарстнев В.П. Сункуев Б.С. Оптимизация механизма продвижения материала по углам передачи. // Изв. вузов. Технология легкой промышленности. 1992. №2-4.
80. Щербань Ю.Ю., Горобец В.А. Параметрический синтез механизма перемещения материала. // Киев. Технол. ин-т легк. пром-сти. – Киев. 1990.
81. Peisun Ma Проектирование механизмов швейных машин. // J. skanghai Tiafong Univ. 1987. №2. С. 102-111.
82. Masanori O., Hiroshi S. Исследование работы швейных машин. // J. Text. Mach. Soc. Jap. 1981. №9 C. 25-29.
83. Рейбарх Л.Б., Полухин В.П. Особенности процесса продвижения материала на высокоскоростных швейных машинах. // Изв. вузов. Технология легкой промышленности. 1982. №1. С. 112-114.
84. Щербань Ю.Ю., Горобец В.А., Носов М.С. Определение посадки материала при скоростном режиме транспортирования на швейных машинах. // Изв. вузов. Технология легкой промышленности. 1988. №2. С. 119-121.
85. Горобец В.А. Щербань Ю.Ю., Силивончик И.С. Транспортирующие органы швейных машин с микрошероховатой поверхностью. // Нов. в техн., технол. и орг. пр-ва швейных изделий: Тез. докл. науч.-практ. конф., Ужгород, 5-7 июня, 1991. - Киев, 1991. С. 17-18.
86. Горобец В.А. Щербань Ю.Ю., Силивончик И.С. Транспортирующие органы швейных машин с микрошероховатой поверхностью. // Изв. вузов. Технология легкой промышленности. 1991, №4. С. 98-104.
87. Mende S. Исследование взаимодействия транспортирующих органов швейной машины. // Textiltechnik, 1982, №5. С. 291-294, 266, 268.
88. Мазин Л.С. Марковец А.В. Луганцева Т.А. Новосёлов Г.А., Анализ и оптимальный синтез параметров механизмов транспортирования ткани швейных иашин: Учебное пособие. / под ред. Мазина Л.С. , СПГУТД. – С.-Петербург, 2000. – 188 с.
#include<stdio.H>
#include<conio.H>
#include<math.h>
#include<graphics.h>
#include<dos.h>
#include<bios.h>
/* описание постоянных */
#define pi M_PI
#define RAD M_PI/180
/* Описание функций */
void elips();
void raschet(float);
void draw(float);
void stoyka(float,float);
void polzushka(float,float,float);
void okno(float,float,float,float);
void ramka(float,float,float,float);
void grafiki();
void grafik(int);
void osi(float,float,float,float,int);
void help();
int traek1();
/* Описание глобальных переменных */
float n=1,t=4,R_C=3,DEK=0.7;
double O1A1=4., O5A2=0.6,
O1F=1.8,
KO4=24.,
FK=52.,
A1B=41.3,
A2H=69.,
O7H=66.5,
O7I=73.,
DB=18.,
O3C=20.,
BC=18.,
O2D=18.,
O3E=24.,
O4M=25.,
MN=18.,
EN=98.66,
EP=95.7,
PN=24.,
CR=204.,
O6R=15.,
O6S=20.,
O8V=43.,
O8W=52.5,
SV=100.,
SR=20.,
WL=23.25,
LX=20.,
IJ=33.5,
JU=26.,
UY=19.4,
Xo1=285, X=290,
Yo1=350, Y=210,
Xo2=-37.6,
Yo2=-16.6,
Xo3=-63.,
Yo3=-1.,
Xo4=56.,
Yo4=7.5,
Xo6=25.,
Yo6=181.,
Xo8=-55.5,
Yo8=104.9,
Xo5=0.,
Yo5=220.,
Xo7=-70.,
Yo7=160.9,
Xx=-32.,
Yx=72.,
Ystola=30.,
Xu=Xx-4,
Yu=Yx-10,
gam1=88,
gam2=-98,
gam3=360-136,
gam4=-180/M_PI*acos((O6R*O6R+O6S*O6S-SR*SR)/2/O6R/O6S),
gam5=-99.56,
gam6=90.,
QQ=90.,
beta=30.,
xq=64.1,
yq=9.3,
ZQb=27.9,
L1zb=29.,
LL1=8.;
double Xa1,Ya1,Xa2,Ya2,Xb,Yb,Xc,Yc,Xk,Yk,Xm,Ym,Xe,Ye,Xn,Yn,Xp,Yp,Xf,Yf,Xd,Yd,Xq,Yq,
Xz,Yz,Xr,Yr,Xs,Ys,Xv,Yv,Xw,Yw,Xh,Yh,Xi,Yi,Xl,Yl,Xj,Yj,Xy,Yy,Xqb,Yqb,Xzb,Yzb,Xl1,Yl1,
A,B,C,A2,B2,C2,A3,B3,C3,A4,B4,C4,A5,B5,C5,A6,B6,C6,A7,B7,C7,
A8,B8,C8,A9,B9,C9,EQ,R,A10,B10,C10,BB,CC,q,L1y,RRR,
cosfi2,sinfi2,cosfi5,sinfi5,cosfi4,sinfi4,cosfi3,sinfi3,alfa,
cosfi7,sinfi7,cosfi6,sinfi6,cosfi9,sinfi9,cosfi8,sinfi8,
cosfi11,sinfi11,cosfi10,sinfi10,cosfi13,sinfi13,cosfi12,sinfi12,
cosfi15,sinfi15,cosfi14,sinfi14,cosfi17,sinfi17,cosfi16,sinfi16,
cosfi19,sinfi19,cosfi18,sinfi18,cosfi20,sinfi20,cosfi21,sinfi21,
fi2,fi3,fi4,fi5,fi6,fi7,fi8,fi9,fi10,fi11,fi12,fi13,fi14,fi15,
fi16,fi17,fi18,fi19,fi20,fi21,fi22;
main()
{
float fi;
int GD=VGA,GM=1;
int key,sing=1,v_p=0,a_p=1,x_x=0;
char buffer [80];
initgraph(&GD,&GM,"c:\\borlandc\\bgi\\");
setbkcolor(0);
for(fi=0;fi<=360;fi+=5)
{
key=bioskey(1);
if(key!=0 && x_x==0) {x_x=1;getch();}
if(key==0x4400) break;
if(key==0x3b00) help();
if(key==0x3d00) {grafiki();key=0;n=1;t=4;Xo1=285;Yo1=350;okno(X-280,DEK*(Y-200),X+240,DEK*(Y+250));}
//if(key==0x231) sing=1;
//if(key==0x332) sing=2;
//if(key==0xb30) sing=0;
if(key==0x3920) getch();
if(key==0x11b) {n=1;t=4;Xo1=285;Yo1=350;}
if(key==0x4e2b ) {n+=1;}
if(key==0x4a2d && n>1) {n-=1;}
if(key==0x4800 ) {Yo1+=10*n;getch();}
if(key==0x5000 ) {Yo1-=10*n;getch();}
if(key==0x4b00 ) {Xo1+=10*n;getch();}
if(key==0x4d00 ) {Xo1-=10*n;getch();}
if(key==0x4e2b) t+=1;
if(key==0x4a2d) t-=1;
if(key!=0) {key=0;getch();}
setvisualpage(v_p);
setactivepage(a_p);
setfillstyle(1,3);
okno(X-280,DEK*(Y-200),X+240,DEK*(Y+250));
elips();
raschet(fi);
draw(fi);
setfillstyle(1,8);
bar(0,0,X-281,350);
bar(X+241,0,640,350);
bar(0,0,640,DEK*(Y-200));
bar(0,DEK*(Y+252),640,350);
okno(535,7,635,348);
okno(10,324,530,348);
setcolor(14);
outtextxy(290,338,"<SPACE> - Пауза");
outtextxy(15,338,"<ESCAPE> - Начальные параметры");
outtextxy(15,328,"<+/-> - Увеличение и уменьшение");
outtextxy(540,35,"<F3>-График");
outtextxy(540,50,"<F10>-Выход");
outtextxy(540,20,"<F1>-Помощь");
ramka(X-280,DEK*(Y-200),X+240,DEK*(Y+250));
sprintf(buffer,"fi21= %.1f°",RRR);
outtextxy(538,65,buffer);
sprintf(buffer,"fi22= %.1f°",fi22-360);
outtextxy(538,80,buffer);
sprintf(buffer,"fi3= %.1f°",fi3);
outtextxy(538,95,buffer);
sprintf(buffer,"fi4= %.1f°",fi4);
outtextxy(538,110,buffer);
sprintf(buffer,"fi5= %.1f°",fi5);
outtextxy(538,125,buffer);
sprintf(buffer,"fi6= %.1f°",fi6);
outtextxy(538,140,buffer);
sprintf(buffer,"fi7= %.1f°",fi7);
outtextxy(538,155,buffer);
sprintf(buffer,"fi8= %.1f°",fi8);
outtextxy(538,170,buffer);
sprintf(buffer,"fi9= %.1f°",fi9);
outtextxy(538,185,buffer);
sprintf(buffer,"fi10= %.1f°",fi10);
outtextxy(538,200,buffer);
sprintf(buffer,"fi11= %.1f°",fi11);
outtextxy(538,215,buffer);
sprintf(buffer,"fi12= %.1f°",fi12);
outtextxy(538,230,buffer);
sprintf(buffer,"fi13= %.1f°",fi13);
outtextxy(538,245,buffer);
sprintf(buffer,"fi14= %.1f°",fi14);
outtextxy(538,260,buffer);
sprintf(buffer,"fi15= %.1f°",fi15);
outtextxy(538,275,buffer);
sprintf(buffer,"fi16= %.1f°",fi16);
outtextxy(538,290,buffer);
sprintf(buffer,"fi17= %.1f°",fi17);
outtextxy(538,305,buffer);
sprintf(buffer,"fi18= %.1f°",fi18);
outtextxy(538,320,buffer);
sprintf(buffer,"fi19= %.1f°",fi19);
outtextxy(538,335,buffer);
setvisualpage(a_p);
delay(67);
if(v_p==0) v_p=1; else v_p=0;
if(a_p==0) a_p=1; else a_p=0;
if(fi>=360) fi=0;
}
getch();
closegraph();
return 0;
}
traek1()
{
float fi;
float N,M,Xmin=+32768,Xmax=-32768,Ymin=+32768,Ymax=-32768;
int i=0;
for(fi=0;fi<=360;fi+=1)
{
raschet(fi);
if(Xq<Xmin) Xmin=Xq;
if(Xq>Xmax) Xmax=Xq;
if(Yq<Ymin) Ymin=Yq;
if(Yq>Ymax) Ymax=Yq;
}
for(fi=0;fi<=360;fi++)
{
raschet(fi);
if(i==1){setcolor(4);line(n*N+Xo1,n*(-M)+Yo1,n*Xq+Xo1,n*(-Yq)+Yo1);}
N=Xq;M=Yq;i=1;
}
setcolor(14);
line(n*Xmin+Xo1,n*(-(Ymin+Ymax)/2)+Yo1,n*Xmax+Xo1,n*(-(Ymin+Ymax)/2)+Yo1);
line(n*(Xmin+Xmax)/2+Xo1,n*(-Ymax)+Yo1,n*(Xmin+Xmax)/2+Xo1,n*(-Ymin)+Yo1);
fi=0;
return 0;
}
void raschet(float fi)
{
Xa1=O1A1*cos(fi*RAD);
Ya1=O1A1*sin(fi*RAD);
Xa2=Xo5+O5A2*cos((87-fi)*RAD);
Ya2=Yo5+O5A2*sin((87-fi)*RAD);
Xf=O1F*cos((fi+gam3)*RAD);
Yf=O1F*sin((fi+gam3)*RAD);
A=pow(Xf-Xo4,2)+pow(Yf-Yo4,2)+KO4*KO4-FK*FK;
B=2*(Xf-Xo4)*KO4;
C=2*(Yf-Yo4)*KO4;
cosfi3=(A*B-C*sqrt(B*B+C*C-A*A))/(B*B+C*C);
sinfi3=(A*C+B*sqrt(B*B+C*C-A*A))/(B*B+C*C);
if(cosfi3>=0 && sinfi3>=0) fi3=180/M_PI*acos(cosfi3);
if(cosfi3<0 && sinfi3>0) fi3=180/M_PI*acos(cosfi3);
if(cosfi3<0 && sinfi3<0) fi3=180+fabs(180/M_PI*asin(sinfi3));
if(cosfi3>0 && sinfi3<0) fi3=360-180/M_PI*acos(cosfi3);
cosfi2=(KO4*cosfi3-(Xf-Xo4))/FK;
sinfi2=(KO4*sinfi3-(Yf-Yo4))/FK;
if(cosfi2>=0 && sinfi2>=0) fi2=180/M_PI*acos(cosfi2);
if(cosfi2<0 && sinfi2>0) fi2=180/M_PI*acos(cosfi2);
if(cosfi2<0 && sinfi2<0) fi2=180+fabs(180/M_PI*asin(sinfi2));
if(cosfi2>0 && sinfi2<0) fi2=360-180/M_PI*acos(cosfi2);
Xm=Xo4+O4M*(cosfi3*cos(gam2*RAD)-sinfi3*sin(gam2*RAD));
Ym=Yo4+O4M*(sinfi3*cos(gam2*RAD)+sin(gam2*RAD)*cosfi3);
Xk=Xf+FK*cosfi2;
Yk=Yf+FK*sinfi2;
Xd=Xo2+O2D*cos((90+beta)*RAD);
Yd=Yo2+O2D*sin((90+beta)*RAD);
A2=pow(Xa1-Xd,2)+pow(Ya1-Yd,2)+DB*DB-A1B*A1B;
B2=2*(Xa1-Xd)*DB;
C2=2*(Ya1-Yd)*DB;
cosfi5=(A2*B2+C2*sqrt(B2*B2+C2*C2-A2*A2))/(B2*B2+C2*C2);
sinfi5=(A2*C2-B2*sqrt(B2*B2+C2*C2-A2*A2))/(B2*B2+C2*C2);
if(cosfi5>=0 && sinfi5>=0) fi5=180/M_PI*acos(cosfi5);
if(cosfi5<0 && sinfi5>0) fi5=180/M_PI*acos(cosfi5);
if(cosfi5<0 && sinfi5<0) fi5=180+fabs(180/M_PI*asin(sinfi5));
if(cosfi5>0 && sinfi5<0) fi5=360-180/M_PI*acos(cosfi5);
cosfi4=(DB*cosfi5-(Xa1-Xd))/A1B;
sinfi4=(DB*sinfi5-(Ya1-Yd))/A1B;
if(cosfi4>=0 && sinfi4>=0) fi4=180/M_PI*acos(cosfi4);
if(cosfi4<0 && sinfi4>0) fi4=180/M_PI*acos(cosfi4);
if(cosfi4<0 && sinfi4<0) fi4=180+fabs(180/M_PI*asin(sinfi4));
if(cosfi4>0 && sinfi4<0) fi4=360-180/M_PI*acos(cosfi4);
Xb=Xa1+A1B*cosfi4;
Yb=Ya1+A1B*sinfi4;
A3=pow(Xb-Xo3,2)+pow(Yb-Yo3,2)+O3C*O3C-BC*BC;
B3=2*(Xb-Xo3)*O3C;
C3=2*(Yb-Yo3)*O3C;
cosfi7=(A3*B3-C3*sqrt(B3*B3+C3*C3-A3*A3))/(B3*B3+C3*C3);
sinfi7=(A3*C3+B3*sqrt(B3*B3+C3*C3-A3*A3))/(B3*B3+C3*C3);
if(cosfi7>=0 && sinfi7>=0) fi7=180/M_PI*acos(cosfi7);
if(cosfi7<0 && sinfi7>0) fi7=180/M_PI*acos(cosfi7);
if(cosfi7<0 && sinfi7<0) fi7=180+fabs(180/M_PI*asin(sinfi7));
if(cosfi7>0 && sinfi7<0) fi7=360-180/M_PI*acos(cosfi7);
cosfi6=(O3C*cosfi7-(Xb-Xo3))/BC;
sinfi6=(O3C*sinfi7-(Yb-Yo3))/BC;
if(cosfi6>=0 && sinfi6>=0) fi6=180/M_PI*acos(cosfi6);
if(cosfi6<0 && sinfi6>0) fi6=180/M_PI*acos(cosfi6);
if(cosfi6<0 && sinfi6<0) fi6=180+fabs(180/M_PI*asin(sinfi6));
if(cosfi6>0 && sinfi6<0) fi6=360-180/M_PI*acos(cosfi6);
Xc=Xo3+O3C*cosfi7;
Yc=Yo3+O3C*sinfi7;
Xe=Xo3+O3E*(cosfi7*cos(gam1*RAD)-sinfi7*sin(gam1*RAD));
Ye=Yo3+O3E*(sinfi7*cos(gam1*RAD)+sin(gam1*RAD)*cosfi7);
A4=pow(Xe-Xm,2)+pow(Ye-Ym,2)+MN*MN-EN*EN;
B4=2*(Xe-Xm)*MN;
C4=2*(Ye-Ym)*MN;
cosfi9=(A4*B4-C4*sqrt(B4*B4+C4*C4-A4*A4))/(B4*B4+C4*C4);
sinfi9=(A4*C4+B4*sqrt(B4*B4+C4*C4-A4*A4))/(B4*B4+C4*C4);
if(cosfi9>=0 && sinfi9>=0) fi9=180/M_PI*acos(cosfi9);
if(cosfi9<0 && sinfi9>0) fi9=180/M_PI*acos(cosfi9);
if(cosfi9<0 && sinfi9<0) fi9=180+fabs(180/M_PI*asin(sinfi9));
if(cosfi9>0 && sinfi9<0) fi9=360-180/M_PI*acos(cosfi9);
cosfi8=(MN*cosfi9-(Xe-Xm))/EN;
sinfi8=(MN*sinfi9-(Ye-Ym))/EN;
if(cosfi8>=0 && sinfi8>=0) fi8=180/M_PI*acos(cosfi8);
if(cosfi8<0 && sinfi8>0) fi8=180/M_PI*acos(cosfi8);
if(cosfi8<0 && sinfi8<0) fi8=180+fabs(180/M_PI*asin(sinfi8));
if(cosfi8>0 && sinfi8<0) fi8=360-180/M_PI*acos(cosfi8);
Xn=Xe+EN*cosfi8;
Yn=Ye+EN*sinfi8;
Xp=Xe+EP*(cosfi8*EP/EN-sinfi8*PN/EN);
Yp=Ye+EP*(sinfi8*EP/EN+cosfi8*PN/EN);
Xz=Xe+xq*(cosfi8*EP/EN-sinfi8*PN/EN);
Yz=Ye+xq*(sinfi8*EP/EN+cosfi8*PN/EN);
Xq=Xz+yq*((cosfi8*EP/EN-sinfi8*PN/EN)*cos(pi/2)-sin(pi/2)*(sinfi8*EP/EN+cosfi8*PN/EN));
Yq=Yz+yq*((sinfi8*EP/EN+cosfi8*PN/EN)*cos(pi/2)+sin(pi/2)*(cosfi8*EP/EN-sinfi8*PN/EN));
A5=pow(Xc-Xo6,2)+pow(Yc-Yo6,2)+O6R*O6R-CR*CR;
B5=2*(Xc-Xo6)*O6R;
C5=2*(Yc-Yo6)*O6R;
cosfi11=(A5*B5-C5*sqrt(B5*B5+C5*C5-A5*A5))/(B5*B5+C5*C5);
sinfi11=(A5*C5+B5*sqrt(B5*B5+C5*C5-A5*A5))/(B5*B5+C5*C5);
if(cosfi11>=0 && sinfi11>=0) fi11=180/M_PI*acos(cosfi11);
if(cosfi11<0 && sinfi11>0) fi11=180/M_PI*acos(cosfi11);
if(cosfi11<0 && sinfi11<0) fi11=180+fabs(180/M_PI*asin(sinfi11));
if(cosfi11>0 && sinfi11<0) fi11=360-180/M_PI*acos(cosfi11);
cosfi10=(O6R*cosfi11-(Xc-Xo6))/CR;
sinfi10=(O6R*sinfi11-(Yc-Yo6))/CR;
if(cosfi10>=0 && sinfi10>=0) fi10=180/M_PI*acos(cosfi10);
if(cosfi10<0 && sinfi10>0) fi10=180/M_PI*acos(cosfi10);
if(cosfi10<0 && sinfi10<0) fi10=180+fabs(180/M_PI*asin(sinfi10));
if(cosfi10>0 && sinfi10<0) fi10=360-180/M_PI*acos(cosfi10);
Xr=Xc+CR*cosfi10;
Yr=Yc+CR*sinfi10;
Xs=Xo6+O6S*(cosfi11*cos(gam4*RAD)-sinfi11*sin(gam4*RAD));
Ys=Yo6+O6S*(sinfi11*cos(gam4*RAD)+sin(gam4*RAD)*cosfi11);
A6=pow(Xs-Xo8,2)+pow(Ys-Yo8,2)+O8V*O8V-SV*SV;
B6=2*(Xs-Xo8)*O8V;
C6=2*(Ys-Yo8)*O8V;
cosfi13=(A6*B6-C6*sqrt(B6*B6+C6*C6-A6*A6))/(B6*B6+C6*C6);
sinfi13=(A6*C6+B6*sqrt(B6*B6+C6*C6-A6*A6))/(B6*B6+C6*C6);
if(cosfi13>=0 && sinfi13>=0) fi13=180/M_PI*acos(cosfi13);
if(cosfi13<0 && sinfi13>0) fi13=180/M_PI*acos(cosfi13);
if(cosfi13<0 && sinfi13<0) fi13=180+fabs(180/M_PI*asin(sinfi13));
if(cosfi13>0 && sinfi13<0) fi13=360-180/M_PI*acos(cosfi13);
cosfi12=(O8V*cosfi13-(Xs-Xo8))/SV;
sinfi12=(O8V*sinfi13-(Ys-Yo8))/SV;
if(cosfi12>=0 && sinfi12>=0) fi12=180/M_PI*acos(cosfi12);
if(cosfi12<0 && sinfi12>0) fi12=180/M_PI*acos(cosfi12);
if(cosfi12<0 && sinfi12<0) fi12=180+fabs(180/M_PI*asin(sinfi12));
if(cosfi12>0 && sinfi12<0) fi12=360-180/M_PI*acos(cosfi12);
Xv=Xs+SV*cosfi12;
Yv=Ys+SV*sinfi12;
Xw=Xo8-O8W*cosfi13;
Yw=Yo8-O8W*sinfi13;
A7=pow(Xa2-Xo7,2)+pow(Ya2-Yo7,2)+O7H*O7H-A2H*A2H;
B7=2*(Xa2-Xo7)*O7H;
C7=2*(Ya2-Yo7)*O7H;
cosfi15=(A7*B7-C7*sqrt(B7*B7+C7*C7-A7*A7))/(B7*B7+C7*C7);
sinfi15=(A7*C7+B7*sqrt(B7*B7+C7*C7-A7*A7))/(B7*B7+C7*C7);
if(cosfi15>=0 && sinfi15>=0) fi15=180/M_PI*acos(cosfi15);
if(cosfi15<0 && sinfi15>0) fi15=180/M_PI*acos(cosfi15);
if(cosfi15<0 && sinfi15<0) fi15=180+fabs(180/M_PI*asin(sinfi15));
if(cosfi15>0 && sinfi15<0) fi15=360-180/M_PI*acos(cosfi15);
cosfi14=(O7H*cosfi15-(Xa2-Xo7))/A2H;
sinfi14=(O7H*sinfi15-(Ya2-Yo7))/A2H;
if(cosfi14>=0 && sinfi14>=0) fi14=180/M_PI*acos(cosfi14);
if(cosfi14<0 && sinfi14>0) fi14=180/M_PI*acos(cosfi14);
if(cosfi14<0 && sinfi14<0) fi14=180+fabs(180/M_PI*asin(sinfi14));
if(cosfi14>0 && sinfi14<0) fi14=360-180/M_PI*acos(cosfi14);
Xh=Xa2+A2H*cosfi14;
Yh=Ya2+A2H*sinfi14;
Xi=Xo7-O7I*cosfi15;
Yi=Yo7-O7I*sinfi15;
A8=pow(Xw-Xx,2)+pow(Yw-Yx,2)+LX*LX-WL*WL;
B8=2*(Xw-Xx)*LX;
C8=2*(Yw-Yx)*LX;
cosfi17=(A8*B8-C8*sqrt(B8*B8+C8*C8-A8*A8))/(B8*B8+C8*C8);
sinfi17=(A8*C8+B8*sqrt(B8*B8+C8*C8-A8*A8))/(B8*B8+C8*C8);
if(cosfi17>=0 && sinfi17>=0) fi17=180/M_PI*acos(cosfi17);
if(cosfi17<0 && sinfi17>0) fi17=180/M_PI*acos(cosfi17);
if(cosfi17<0 && sinfi17<0) fi17=180+fabs(180/M_PI*asin(sinfi17));
if(cosfi17>0 && sinfi17<0) fi17=360-180/M_PI*acos(cosfi17);
cosfi16=(LX*cosfi17-(Xw-Xx))/WL;
sinfi16=(LX*sinfi17-(Yw-Yx))/WL;
if(cosfi16>=0 && sinfi16>=0) fi16=180/M_PI*acos(cosfi16);
if(cosfi16<0 && sinfi16>0) fi16=180/M_PI*acos(cosfi16);
if(cosfi16<0 && sinfi16<0) fi16=180+fabs(180/M_PI*asin(sinfi16));
if(cosfi16>0 && sinfi16<0) fi16=360-180/M_PI*acos(cosfi16);
Xl=Xw+WL*cosfi16;
Yl=Yw+WL*sinfi16;
A9=pow(Xi-Xu,2)+pow(Yi-Yu,2)+JU*JU-IJ*IJ;
B9=2*(Xi-Xu)*JU;
C9=2*(Yi-Yu)*JU;
cosfi19=(A9*B9+C9*sqrt(B9*B9+C9*C9-A9*A9))/(B9*B9+C9*C9);
sinfi19=(A9*C9-B9*sqrt(B9*B9+C9*C9-A9*A9))/(B9*B9+C9*C9);
if(cosfi19>=0 && sinfi19>=0) fi19=180/M_PI*acos(cosfi19);
if(cosfi19<0 && sinfi19>0) fi19=180/M_PI*acos(cosfi19);
if(cosfi19<0 && sinfi19<0) fi19=180+fabs(180/M_PI*asin(sinfi19));
if(cosfi19>0 && sinfi19<0) fi19=360-180/M_PI*acos(cosfi19);
cosfi18=(JU*cosfi19-(Xi-Xu))/IJ;
sinfi18=(JU*sinfi19-(Yi-Yu))/IJ;
if(cosfi18>=0 && sinfi18>=0) fi18=180/M_PI*acos(cosfi18);
if(cosfi18<0 && sinfi18>0) fi18=180/M_PI*acos(cosfi18);
if(cosfi18<0 && sinfi18<0) fi18=180+fabs(180/M_PI*asin(sinfi18));
if(cosfi18>0 && sinfi18<0) fi18=360-180/M_PI*acos(cosfi18);
Xj=Xi+IJ*cosfi18;
Yj=Yi+IJ*sinfi18;
Xy=Xu+UY*(cosfi19*cos(gam5*RAD)-sinfi19*sin(gam5*RAD));
Yy=Yu+UY*(sinfi19*cos(gam5*RAD)+sin(gam5*RAD)*cosfi19);
q=sqrt(pow(Xl-Xy,2)+pow(Yl-Yy,2));
L1y=sqrt(q*q-LL1*LL1);
A10=LL1;
B10=L1y;
C10=Yl-Yy;
sinfi20=(-B10*C10-A10*sqrt(A10*A10+B10*B10-C10*C10))/(A10*A10+B10*B10);
cosfi20=(-A10*C10+B10*sqrt(A10*A10+B10*B10-C10*C10))/(A10*A10+B10*B10);
if(cosfi20>=0 && sinfi20>=0) fi20=180/M_PI*acos(cosfi20);
if(cosfi20<0 && sinfi20>0) fi20=180/M_PI*acos(cosfi20);
if(cosfi20<0 && sinfi20<0) fi20=180+fabs(180/M_PI*asin(sinfi20));
if(cosfi20>0 && sinfi20<0) fi20=360-180/M_PI*acos(cosfi20);
Xl1=Xl+LL1*cos((fi20+QQ)*RAD);
Yl1=Yl+LL1*sin((fi20+QQ)*RAD);
Xzb=Xl1+L1zb*cos(fi20*RAD);
Yzb=Yl1+L1zb*sin(fi20*RAD);
Xqb=Xzb+ZQb*cos((fi20-QQ)*RAD);
Yqb=Yzb+ZQb*sin((fi20-QQ)*RAD);
RRR=sqrt(pow(Xl-Xqb,2)+pow(Yl-Yqb,2));
return;
}
void elips()
{
float fi;
for(fi=0;fi<=360;fi++)
{
raschet(fi);
putpixel(n*Xq+Xo1,DEK*(n*(-Yq)+Yo1),4);
putpixel(n*Xqb+Xo1,DEK*(n*(-Yqb)+Yo1),4);
}
return;
}
void draw(float fi)
{
/*Стойки*/
stoyka(Xo1,Yo1);
stoyka(n*Xo2+Xo1,n*(-Yo2)+Yo1);
stoyka(n*Xo3+Xo1,n*(-Yo3)+Yo1);
stoyka(n*Xo4+Xo1,n*(-Yo4)+Yo1);
stoyka(n*Xd+Xo1,n*(-Yd)+Yo1);
stoyka(n*Xo6+Xo1,n*(-Yo6)+Yo1);
stoyka(n*Xo8+Xo1,n*(-Yo8)+Yo1);
stoyka(n*Xo5+Xo1,n*(-Yo5)+Yo1);
stoyka(n*Xo7+Xo1,n*(-Yo7)+Yo1);
/*Звенья*/
setlinestyle(0,1,3);
setcolor(1);
line(Xo1,DEK*Yo1,n*Xa1+Xo1,DEK*(n*(-Ya1)+Yo1));
line(Xo1,DEK*Yo1,n*Xf+Xo1,DEK*(n*(-Yf)+Yo1));
line(n*Xo4+Xo1,DEK*(n*(-Yo4)+Yo1),n*Xk+Xo1,DEK*(n*(-Yk)+Yo1));
line(n*Xf+Xo1,DEK*(n*(-Yf)+Yo1),n*Xk+Xo1,DEK*(n*(-Yk)+Yo1));
line(n*Xm+Xo1,DEK*(n*(-Ym)+Yo1),n*Xk+Xo1,DEK*(n*(-Yk)+Yo1));
line(n*Xo4+Xo1,DEK*(n*(-Yo4)+Yo1),n*Xm+Xo1,DEK*(n*(-Ym)+Yo1));
line(n*Xd+Xo1,DEK*(n*(-Yd)+Yo1),n*Xb+Xo1,DEK*(n*(-Yb)+Yo1));
line(n*Xa1+Xo1,DEK*(n*(-Ya1)+Yo1),n*Xb+Xo1,DEK*(n*(-Yb)+Yo1));
line(n*Xc+Xo1,DEK*(n*(-Yc)+Yo1),n*Xb+Xo1,DEK*(n*(-Yb)+Yo1));
line(n*Xc+Xo1,DEK*(n*(-Yc)+Yo1),n*Xo3+Xo1,DEK*(n*(-Yo3)+Yo1));
line(n*Xo2+Xo1,DEK*(n*(-Yo2)+Yo1),n*Xd+Xo1,DEK*(n*(-Yd)+Yo1));
line(n*Xe+Xo1,DEK*(n*(-Ye)+Yo1),n*Xc+Xo1,DEK*(n*(-Yc)+Yo1));
line(n*Xo3+Xo1,DEK*(n*(-Yo3)+Yo1),n*Xe+Xo1,DEK*(n*(-Ye)+Yo1));
line(n*Xe+Xo1,DEK*(n*(-Ye)+Yo1),n*Xn+Xo1,DEK*(n*(-Yn)+Yo1));
line(n*Xn+Xo1,DEK*(n*(-Yn)+Yo1),n*Xm+Xo1,DEK*(n*(-Ym)+Yo1));
line(n*Xe+Xo1,DEK*(n*(-Ye)+Yo1),n*Xp+Xo1,DEK*(n*(-Yp)+Yo1));
line(n*Xn+Xo1,DEK*(n*(-Yn)+Yo1),n*Xp+Xo1,DEK*(n*(-Yp)+Yo1));
line(n*Xz+Xo1,DEK*(n*(-Yz)+Yo1),n*Xq+Xo1,DEK*(n*(-Yq)+Yo1));
line(n*Xc+Xo1,DEK*(n*(-Yc)+Yo1),n*Xr+Xo1,DEK*(n*(-Yr)+Yo1));
line(n*Xr+Xo1,DEK*(n*(-Yr)+Yo1),n*Xo6+Xo1,DEK*(n*(-Yo6)+Yo1));
line(n*Xs+Xo1,DEK*(n*(-Ys)+Yo1),n*Xo6+Xo1,DEK*(n*(-Yo6)+Yo1));
line(n*Xr+Xo1,DEK*(n*(-Yr)+Yo1),n*Xs+Xo1,DEK*(n*(-Ys)+Yo1));
line(n*Xs+Xo1,DEK*(n*(-Ys)+Yo1),n*Xv+Xo1,DEK*(n*(-Yv)+Yo1));
line(n*Xv+Xo1,DEK*(n*(-Yv)+Yo1),n*Xo8+Xo1,DEK*(n*(-Yo8)+Yo1));
line(n*Xw+Xo1,DEK*(n*(-Yw)+Yo1),n*Xo8+Xo1,DEK*(n*(-Yo8)+Yo1));
line(n*Xo5+Xo1,DEK*(n*(-Yo5)+Yo1),n*Xa2+Xo1,DEK*(n*(-Ya2)+Yo1));
line(n*Xh+Xo1,DEK*(n*(-Yh)+Yo1),n*Xa2+Xo1,DEK*(n*(-Ya2)+Yo1));
line(n*Xh+Xo1,DEK*(n*(-Yh)+Yo1),n*Xo7+Xo1,DEK*(n*(-Yo7)+Yo1));
line(n*Xo7+Xo1,DEK*(n*(-Yo7)+Yo1),n*Xi+Xo1,DEK*(n*(-Yi)+Yo1));
line(n*Xw+Xo1,DEK*(n*(-Yw)+Yo1),n*Xl+Xo1,DEK*(n*(-Yl)+Yo1));
line(n*Xl+Xo1,DEK*(n*(-Yl)+Yo1),n*Xx+Xo1,DEK*(n*(-Yx)+Yo1));
line(n*Xx+Xo1,DEK*(n*(-Yx)+Yo1),n*Xu+Xo1,DEK*(n*(-Yu)+Yo1));
line(n*Xi+Xo1,DEK*(n*(-Yi)+Yo1),n*Xj+Xo1,DEK*(n*(-Yj)+Yo1));
line(n*Xj+Xo1,DEK*(n*(-Yj)+Yo1),n*Xu+Xo1,DEK*(n*(-Yu)+Yo1));
line(n*Xx+Xo1,DEK*(n*(-Yx)+Yo1),n*(Xx+16)+Xo1,DEK*(n*(-Yx)+Yo1));
line(n*Xu+Xo1,DEK*(n*(-Yu)+Yo1),n*Xy+Xo1,DEK*(n*(-Yy)+Yo1));
line(n*Xj+Xo1,DEK*(n*(-Yj)+Yo1),n*Xy+Xo1,DEK*(n*(-Yy)+Yo1));
//line(n*Xl+Xo1,DEK*(n*(-Yl)+Yo1),n*Xzb+Xo1,DEK*(n*(-Yzb)+Yo1));
line(n*Xzb+Xo1,DEK*(n*(-Yzb)+Yo1),n*Xqb+Xo1,DEK*(n*(-Yqb)+Yo1));
line(n*Xl+Xo1,DEK*(n*(-Yl)+Yo1),n*Xl1+Xo1,DEK*(n*(-Yl1)+Yo1));
line(n*Xl1+Xo1,DEK*(n*(-Yl1)+Yo1),n*Xzb+Xo1,DEK*(n*(-Yzb)+Yo1));
setlinestyle(0,0,1);
setcolor(4);
line(50,DEK*(n*(-Ystola)+Yo1),450,DEK*(n*(-Ystola)+Yo1));
line(50,DEK*(n*(-Ystola-2.5)+Yo1),450,DEK*(n*(-Ystola-2.5)+Yo1));
line(50,DEK*(n*(-Ystola-3.5)+Yo1),450,DEK*(n*(-Ystola-3.5)+Yo1));
line(Xo1,DEK*(n*(-0)+Yo1),Xo1,DEK*(n*(-Ystola-40)+Yo1));
polzushka(n*Xy+Xo1,n*(-Yy)+Yo1,-fi20);
setlinestyle(0,0,3);
arc(Xo1,DEK*Yo1,fi+gam3,fi,6);
arc(Xo1+n*Xo8,DEK*(n*(-Yo8)+Yo1),fi13+180,fi13,8);
arc(Xo1+n*Xo7,DEK*(n*(-Yo7)+Yo1),fi15+180,fi15,8);
arc(Xo1+n*Xu,DEK*(n*(-Yu)+Yo1),fi19,fi19+gam5,7);
arc(Xo1+n*Xx,DEK*(n*(-Yx)+Yo1),0,240,7);
setlinestyle(0,0,1);
setfillstyle(1,3);
setcolor(1);
fillellipse(Xo1,DEK*Yo1,R_C,R_C);
fillellipse(Xo1+Xo3*n,DEK*(Yo1-Yo3*n),R_C,R_C);
fillellipse(Xo1+Xo4*n,DEK*(Yo1-Yo4*n),R_C,R_C);
fillellipse(Xo1+Xo2*n,DEK*(Yo1-Yo2*n),R_C,R_C);
fillellipse(Xo1+Xo6*n,DEK*(Yo1-Yo6*n),R_C,R_C);
fillellipse(Xo1+Xo7*n,DEK*(Yo1-Yo7*n),R_C,R_C);
fillellipse(Xo1+Xo5*n,DEK*(Yo1-Yo5*n),R_C,R_C);
fillellipse(Xo1+Xo8*n,DEK*(Yo1-Yo8*n),R_C,R_C);
fillellipse(n*Xa1+Xo1,DEK*(n*(-Ya1)+Yo1),R_C,R_C);
fillellipse(n*Xa2+Xo1,DEK*(n*(-Ya2)+Yo1),R_C,R_C);
fillellipse(n*Xh+Xo1,DEK*(n*(-Yh)+Yo1),R_C,R_C);
fillellipse(n*Xl+Xo1,DEK*(n*(-Yl)+Yo1),R_C,R_C);
fillellipse(n*Xf+Xo1,DEK*(n*(-Yf)+Yo1),R_C,R_C);
fillellipse(n*Xr+Xo1,DEK*(n*(-Yr)+Yo1),R_C,R_C);
fillellipse(n*Xs+Xo1,DEK*(n*(-Ys)+Yo1),R_C,R_C);
fillellipse(n*Xk+Xo1,DEK*(n*(-Yk)+Yo1),R_C,R_C);
fillellipse(n*Xm+Xo1,DEK*(n*(-Ym)+Yo1),R_C,R_C);
fillellipse(n*Xd+Xo1,DEK*(n*(-Yd)+Yo1),R_C,R_C);
fillellipse(n*Xb+Xo1,DEK*(n*(-Yb)+Yo1),R_C,R_C);
fillellipse(n*Xc+Xo1,DEK*(n*(-Yc)+Yo1),R_C,R_C);
fillellipse(n*Xe+Xo1,DEK*(n*(-Ye)+Yo1),R_C,R_C);
fillellipse(n*Xn+Xo1,DEK*(n*(-Yn)+Yo1),R_C,R_C);
fillellipse(n*Xp+Xo1,DEK*(n*(-Yp)+Yo1),R_C,R_C);
fillellipse(n*Xv+Xo1,DEK*(n*(-Yv)+Yo1),R_C,R_C);
fillellipse(n*Xw+Xo1,DEK*(n*(-Yw)+Yo1),R_C,R_C);
fillellipse(n*Xi+Xo1,DEK*(n*(-Yi)+Yo1),R_C,R_C);
fillellipse(n*Xx+Xo1,DEK*(n*(-Yx)+Yo1),R_C,R_C);
fillellipse(n*Xu+Xo1,DEK*(n*(-Yu)+Yo1),R_C,R_C);
fillellipse(n*Xj+Xo1,DEK*(n*(-Yj)+Yo1),R_C,R_C);
fillellipse(n*Xy+Xo1,DEK*(n*(-Yy)+Yo1),R_C,R_C);
/*Текст*/
setcolor(14);
outtextxy(Xo1,DEK*Yo1+20,"O1");
outtextxy(Xo1+Xo3*n,DEK*(Yo1-Yo3*n)+20,"O3");
outtextxy(Xo1+Xo4*n-35,DEK*(Yo1-Yo4*n)+10,"O4");
outtextxy(Xo1+Xo6*n-5,DEK*(Yo1-Yo6*n)-17,"O6");
outtextxy(Xo1+Xo8*n+15,DEK*(Yo1-Yo8*n)-7,"O8");
outtextxy(Xo1+Xo7*n+15,DEK*(Yo1-Yo7*n)-7,"O7");
outtextxy(Xo1+Xo5*n+15,DEK*(Yo1-Yo5*n)-7,"O5");
outtextxy(Xo1+Xo2*n,DEK*(Yo1-Yo2*n)+20,"O2");
outtextxy(n*Xa1+Xo1-5,DEK*(n*(-Ya1)+Yo1-15),"A1");
outtextxy(n*Xa2+Xo1-5,DEK*(n*(-Ya2)+Yo1-15),"A2");
outtextxy(n*Xh+Xo1-5,DEK*(n*(-Yh)+Yo1-15),"H");
outtextxy(n*Xi+Xo1-5,DEK*(n*(-Yi)+Yo1-15),"I");
outtextxy(n*Xf+Xo1+5,DEK*(n*(-Yf)+Yo1-15),"F");
outtextxy(n*Xk+Xo1-3,DEK*(n*(-Yk)+Yo1+10),"K");
outtextxy(n*Xm+Xo1-15,DEK*(n*(-Ym)+Yo1),"M");
outtextxy(n*Xd+Xo1-15,DEK*(n*(-Yd)+Yo1+5),"D");
outtextxy(n*Xb+Xo1-3,DEK*(n*(-Yb)+Yo1+10),"B");
outtextxy(n*Xc+Xo1+10,DEK*(n*(-Yc)+Yo1-10),"C");
outtextxy(n*Xe+Xo1,DEK*(n*(-Ye)+Yo1-17),"E");
outtextxy(n*Xn+Xo1-3,DEK*(n*(-Yn)+Yo1+10),"N");
outtextxy(n*Xp+Xo1,DEK*(n*(-Yp)+Yo1-17),"P");
outtextxy(n*Xs+Xo1-7,DEK*(n*(-Ys)+Yo1-17),"S");
outtextxy(n*Xr+Xo1,DEK*(n*(-Yr)+Yo1-17),"R");
outtextxy(n*Xv+Xo1,DEK*(n*(-Yv)+Yo1-17),"V");
outtextxy(n*Xw+Xo1,DEK*(n*(-Yw)+Yo1-17),"W");
outtextxy(n*Xl+Xo1,DEK*(n*(-Yl)+Yo1-17),"L");
outtextxy(n*Xx+Xo1,DEK*(n*(-Yx)+Yo1-17),"X");
outtextxy(n*Xu+Xo1,DEK*(n*(-Yu)+Yo1-17),"U");
outtextxy(n*Xj+Xo1,DEK*(n*(-Yj)+Yo1-17),"J");
outtextxy(n*Xy+Xo1,DEK*(n*(-Yy)+Yo1-17),"Y");
return;
}
void stoyka(float X, float Y)
{
setlinestyle(0,0,3);
setfillstyle(1,3);
setcolor(4);
line(X,DEK*Y,X+5,DEK*Y+10);
line(X,DEK*Y,X-5,DEK*Y+10);
line(X-10,DEK*Y+10,X+10,DEK*Y+10);
setlinestyle(0,0,1);
//fillellipse(X,DEK*Y,R_C,R_C);
line(X-5,DEK*Y+10,X-9,DEK*Y+14);
line(X,DEK*Y+10,X-4,DEK*Y+14);
line(X+5,DEK*Y+10,X+1,DEK*Y+14);
line(X+10,DEK*Y+10,X+6,DEK*Y+14);
return;
}
void polzushka(float X, float Y, float fi)
{
setlinestyle(0,0,3);
setfillstyle(1,3);
setcolor(1);
line(X+15*cos((fi+30)*RAD),DEK*(Y+15*sin((fi+30)*RAD)),X+15*cos((fi+150)*RAD),DEK*(Y+15*sin((fi+150)*RAD)));
line(X+15*cos((fi+210)*RAD),DEK*(Y+15*sin((fi+210)*RAD)),X+15*cos((fi+330)*RAD),DEK*(Y+15*sin((fi+330)*RAD)));
line(X+15*cos((fi+30)*RAD),DEK*(Y+15*sin((fi+30)*RAD)),X+15*cos((fi+330)*RAD),DEK*(Y+15*sin((fi+330)*RAD)));
line(X+15*cos((fi+210)*RAD),DEK*(Y+15*sin((fi+210)*RAD)),X+15*cos((fi+150)*RAD),DEK*(Y+15*sin((fi+150)*RAD)));
setlinestyle(0,0,1);
//fillellipse(X,DEK*Y,R_C,R_C);
return;
}
void okno(float x1,float y1,float x2,float y2)
{
setfillstyle(1,7);
setlinestyle(0,1,1);
bar(x1+2,y1+2,x2-2,y2-2);
setcolor(15);
line(x1,y1,x2,y1);
line(x1,y1,x1,y2);
line(x1+1,y1+1,x1+1,y2-1);
line(x1+1,y1+1,x2-1,y1+1);
setcolor(8);
line(x2-1,y1+1,x2-1,y2-1);
line(x1+1,y2-1,x2-1,y2-1);
setcolor(0);
line(x1,y2,x2,y2);
line(x2,y1,x2,y2);
return;
}
void ramka(float x1,float y1,float x2,float y2)
{
setlinestyle(0,1,1);
setcolor(15);
line(x1,y1,x2,y1);
line(x1,y1,x1,y2);
line(x1+1,y1+1,x1+1,y2-1);
line(x1+1,y1+1,x2-1,y1+1);
setcolor(8);
line(x2-1,y1+1,x2-1,y2-1);
line(x1+1,y2-1,x2-1,y2-1);
setcolor(0);
line(x1,y2,x2,y2);
line(x2,y1,x2,y2);
return;
}
void help()
{
char text[]="Машина 131 ряда";
int key;
setfillstyle(1,8);
bar(0,0,640,350);
okno(140,50,500,300);
setcolor(1);
outtextxy(150,60,text);
do
{
key=bioskey(1);
if(key==0x11b) break;
if(key!=0) {key=0;getch();}
}
while(key!=0x11b);
return;
}
void grafiki()
{
int key,x_x=0,fi,t=1;
setgraphmode(2);
setfillstyle(1,8);
bar(0,0,640,480);
okno(X-280,DEK*(Y-200),X+235,DEK*(Y+450));
osi(45,430,475,400,1);
setcolor(14);
outtextxy(640,20,"Вывод графика:");
outtextxy(640,450,"<ESCAPE>-Выход");
grafik(1);
do
{
key=bioskey(1);
if(key!=0 && x_x==0) {x_x=1;getch();}
if(key==0x4b00 && t>1) {t--;getch();}
if(key==0x4d00 && t<19) {t++;getch();}
if(key!=0) grafik(t);
if(key==0x11b) break;
if(key!=0) {key=0;getch();}
if(fi>=360) fi=0;
}
while(1==1);
getch();
setgraphmode(1);
return;
}
void osi(float x, float y, float l_x, float l_y, int color)
{
int i;
char buffer [80];
setcolor(color);
line(x,y,x+l_x,y);
line(x,y,x,y-l_y);
line(x,y-l_y,x-2,y-l_y+10);
line(x,y-l_y,x+2,y-l_y+10);
line(x+l_x,y,x+l_x-10,y+2);
line(x+l_x,y,x+l_x-10,y-2);
for(i=10;i<=360;i+=10)
{
setcolor(6);
line(x+i*1.2,y-l_y+40,x+i*1.2,y+1);
line(x-1,y-i,x+l_x-45,y-i);
setcolor(0);
sprintf(buffer,"%d",i);
settextstyle(0,0,0);
settextjustify(2,1);
outtextxy(x-2,y-i+1,buffer);
settextstyle(0,1,0);
settextjustify(1,2);
outtextxy(x+i*1.2,y+3,buffer);
}
settextstyle(0,0,0);
settextjustify(2,1);
return;
}
void grafik(int sign)
{
float i;
okno(X-280,DEK*(Y-200),X+235,DEK*(Y+450));
osi(45,430,475,400,1);
if(sign==1)outtextxy(44,45,"fi2");
if(sign==2)outtextxy(44,45,"fi3");
if(sign==3)outtextxy(44,45,"fi4");
if(sign==4)outtextxy(44,45,"fi5");
if(sign==5)outtextxy(44,45,"fi6");
if(sign==6)outtextxy(44,45,"fi7");
if(sign==7)outtextxy(44,45,"fi8");
if(sign==8)outtextxy(44,45,"fi9");
if(sign==9)outtextxy(44,45,"fi10");
if(sign==10)outtextxy(44,45,"fi11");
if(sign==11)outtextxy(44,45,"fi12");
if(sign==12)outtextxy(44,45,"fi13");
if(sign==13)outtextxy(44,45,"fi14");
if(sign==14)outtextxy(44,45,"fi15");
if(sign==15)outtextxy(44,45,"fi16");
if(sign==16)outtextxy(44,45,"fi17");
if(sign==17)outtextxy(44,45,"fi18");
if(sign==18)outtextxy(44,45,"fi19");
if(sign==19)outtextxy(44,45,"fi20");
outtextxy(510,440,"fi");
for(i=0;i<=360;i++)
{
raschet(i);
if(sign==1)putpixel(45+i*1.2,430-fi2,0);
if(sign==2)putpixel(45+i*1.2,430-fi3,0);
if(sign==3)putpixel(45+i*1.2,430-fi4,0);
if(sign==4)putpixel(45+i*1.2,430-fi5,0);
if(sign==5)putpixel(45+i*1.2,430-fi6,0);
if(sign==6)putpixel(45+i*1.2,430-fi7,0);
if(sign==7)putpixel(45+i*1.2,430-fi8,0);
if(sign==8)putpixel(45+i*1.2,430-fi9,0);
if(sign==9)putpixel(45+i*1.2,430-fi10,0);
if(sign==10)putpixel(45+i*1.2,430-fi11,0);
if(sign==11)putpixel(45+i*1.2,430-fi12,0);
if(sign==12)putpixel(45+i*1.2,430-fi13,0);
if(sign==13)putpixel(45+i*1.2,430-fi14,0);
if(sign==14)putpixel(45+i*1.2,430-fi15,0);
if(sign==15)putpixel(45+i*1.2,430-fi16,0);
if(sign==16)putpixel(45+i*1.2,430-fi17,0);
if(sign==17)putpixel(45+i*1.2,430-fi18,0);
if(sign==18)putpixel(45+i*1.2,430-fi19,0);
if(sign==19)putpixel(45+i*1.2,430-fi20,0);
}
return;
}
Дата: 2019-05-28, просмотров: 203.