LINUX.ORG.RU

История изменений

Исправление ziemin, (текущая версия) :

x1*(y2-y1)*(y2-y1)+tx*(x2-x1)*(x2-x1)+(x2-x1)*(y2-y1)*(ty-y1)

А это не формула квадрата суммы часом? Получается

x1*(y2-y1)*(y2-y1)+tx*(x2-x1)*(x2-x1)+(x2-x1)*(y2-y1)*(ty-y1)
=>
a=(y2-y1)*sqrt(x1) b = (x2-x1)*sqrt(tx)
=>
a^2 + b^2 + 2ab * (ty - y1) / (2 *sqrt(x1)*sqrt(tx)) + 2ab - 2ab
=>
(a + b)^2 + 2ab * (ty - y1) / (2 *sqrt(x1)*sqrt(tx)) - 2ab
=> (a + b)^2 + 2ab ((ty - y1)/2 *sqrt(x1)*sqrt(tx) - 1)

Так же проще считать (a, b надо вычислить заранее)

Исправление ziemin, :

x1*(y2-y1)*(y2-y1)+tx*(x2-x1)*(x2-x1)+(x2-x1)*(y2-y1)*(ty-y1)

А это не формула квадрата суммы часом? Получается

x1*(y2-y1)*(y2-y1)+tx*(x2-x1)*(x2-x1)+(x2-x1)*(y2-y1)*(ty-y1)
=>
a=(y2-y1)*sqrt(x1) b = (x2-x1)*sqrt(tx)
=>
a^2 + b^2 + 2ab * (ty - y1) / (2 *sqrt(x1)*sqrt(tx)) + 2ab - 2ab
=>
(a + b)^2 + 2ab * (ty - y1) / (2 *sqrt(x1)*sqrt(tx) - 2ab
=> (a + b)^2 + 2ab ((ty - y1)/2 *sqrt(x1)*sqrt(tx) - 1)

Так же проще считать (a, b надо вычислить заранее)

Исходная версия ziemin, :

x1*(y2-y1)*(y2-y1)+tx*(x2-x1)*(x2-x1)+(x2-x1)*(y2-y1)*(ty-y1)

А это не формула квадрата суммы часом? Получается

x1*(y2-y1)*(y2-y1)+tx*(x2-x1)*(x2-x1)+(x2-x1)*(y2-y1)*(ty-y1)
=>
a=(y2-y1)*sqrt(x1) b = (x2-x1)*sqrt(tx)
=>
a^2 + b^2 + 2ab * (ty - y1) / (2 *sqrt(x1)*sqrt(tx) + 2ab - 2ab
=>
(a + b)^2 - 2ab * (ty - y1) / (2 *sqrt(x1)*sqrt(tx) - 2ab
=> (a + b)^2 - 2ab (1 + (ty - y1)/2 *sqrt(x1)*sqrt(tx))

Так же проще считать (a, b надо вычислить заранее)