arsorange, тогда никакой движок кроме условных конструкторов (где вообще не надо программировать) вам не подойдет. Но акутальность и гибкость конструкторов - крайне низкая.
Есть теорема про то, что медиана из прямого угла равна половине гипотенузы. Вы даже это косвенно через подобия и доказали )
Круто что подходов много.
Есть доказательство еще просто через выражения углов друг через друга и свойство равнобедренных треугольников.
По моему вы усложняете ))
Тангенс угла между гипотенузой и катетом равен соотношению катетов - из соотношения сторон прямоугольного треугольника.
Угол MBC равен углу MCB (равно как и BAM равен MBA) - потому что BM == AM == MC (есть такая теорема про медиану прямоугольного треугольника), т.е. там два равнобедренных треугольника, у которых углы в основаниях равны (опять таки простые свойства равнобедренных треугольников).
Ну собственно и все.
Угол MBC == углу ACB (который является углом MCB) == atan(AB/BC)
Максим Соловьев, точно не скажу - давно винапи не использую. Скорее всего - сохранить HWND окна (или само окно), получить нужное свойство и поменять его, пометить окно как dirty.
Учитывайте - в терминах winAPI всё окна - и кнопки тоже. И все это конечно делать при изменении переменной
Максим Соловьев, какое выражение? Где вы его выводите? Если вы о выводе i (названия переменных конечно...) - то оно выводится один раз при создании окна.
Максим Соловьев, что такое нижняя функция? voron? Она тут ни при чем. У вас две переменных q. Посмотрите внимательно и ВНИМАТЕЛЬНО прочитайте мой ответ
Максим Соловьев, функция WndProc вызывется каждый раз когда происходит какое то действие в окне - в т.ч. и клик мышкой. Соответственно и переменная q каждый раз создается. Перенесите объявление ЗА фукнцию.
P.S. стоп. А как оно компилится? У вас в if присвоение, а не сравнение