guiH := Ceil(guiW * (inW / inH) ) ; понятно что длина карты, но я не понял почему используется эта формула
guiH это высота gui окна карты. Задавая самостоятельно guiW ширину gui окна карты, нам надо знать коэфициент соотношения сторон чтобы задать высоту. Разделив inW на inH мы получаем коэфициент соотношения сторон. Ceil округляет до большего целого.
inH := inY1 + Abs(inY2) ; понятно что тут высота, но я прочитал в справке про abs и не понял ничего(
inY2 отрицательно. Можно просто inH := inY1 - inY2. Сделано для наглядности. Abs всего лишь делает отрицательное - положительным.
inH и inW дают не просто высоту и ширину, они как бы задают inY2 и inX2 в нормальной системе координат, где inX1 и inY1 равны нулю. Это и есть ответ на вопрос:
outX := guiW * (Abs(posX - inX1) / inW)
Вся штука тут в относительности. posX - inX1 отнимаем смещение слева, и приводим X к нормальной системе. Далее делим этот нормальный X на всю длинну отрезка, и получаем коэфициент смещения от начала 0 до конца 1. Умножаем ширину gui окна карты на этот коэфициент, и получаем X исходя из ширины карты.
Abs тут не нужен, так как в изначальной системе координат нет отрицательного X, можно и без него:
outX := guiW * ((posX - inX1) / inW)
Он нужен только для outY где возможно отрицательное значение.
По вопросам возмездной помощи пишите на
E-Mail: serzh82saratov@mail.ru Telegram:
https://t.me/sergiol982Win10x64
AhkSpy,
Hotkey,
ClockGui