Сообщение от
mailbrush
Такая проблема с GD в Delphi.
Вобщем есть точка, скажем, X100 Y150.
Есть другая точка, X200 Y220.
Надо провести линию (imageline) между этими точками, НО чтобы линия расстянулась, т.е. вместо того, чтобы быть в точке 100x150 была чуть-чуть выше по X и по Y, и вместо 200х220 была чуть-чуть ниже по X, Y, но чтобы она проходила между этими точками(100x150, 200x220)
Векторы =))
AB - вектор с точками A(100; 150), B(200; 220)
смещение вектора от 0,0 будет min(A,B) = (100; 150)
приводим вектор в локальные координаты abs(A-B) => A'(0 ; 0) B'(100; 70)
находим зависимость x от y
k = B'(x) / B'(y) = ~1,43
теперь мы можем спокойно взять любую точку от вектора... скажем 10 пикселей по y от точки B => B(y) + 10
мировые координаты
B(y) = смещение(y) + B'(y) + 10 = B(y) + 10 = 230
B(x) = смещение(x) +(B'(y) + 10)*k = 100 + 80*1.43 = ~214,4
задаём смещение от краёв и проводим линию =)