Тема: AHK: Определить соотношение сторон
Понадобилось определить и автоматически подстраивать Gui под разные мониторы, на форуме не нашёл ответа, попробовал напрячь ИИ. Может кому пригодится.
Первая версия кода:
width := 1920
height := 1080
; Получение сокращенной дроби и НОД
result := ReduceFraction(width, height)
; Вывод результата
MsgBox, Соотношение сторон: %result%
ReduceFraction(x, y) {
gcd := GCD(x, y)
reducedWidth := x // gcd
reducedHeight := y // gcd
Return reducedWidth ":" reducedHeight
}
GCD(X, Y) {
while (Y) {
R := Mod(X, Y)
X := Y
Y := R
}
Return X
}
Return
В виде двух функций не особо хотелось, напряг ИИ ещё немного +сократил код:
MsgBox, % "Соотношение сторон монитора: " ReduceFraction(A_ScreenWidth, A_ScreenHeight)
ReduceFraction(X, Y){ ;23:39 05.08.2023 [БОТ]
GCD := X, D := Y
While(D)
M := Mod(GCD, D), GCD := D, D := M
Return (X // GCD) ":" (Y // GCD)
}