Математику забыл

Две точки заданы своими координатами: A (xvvAvv, yvvAvv) и B (xvvBvv, yvvBvv). Найти координаты третьей точки C (xvvCvv, yvvCvv) такие, что:

  1. отрезки AC и BC равны;
  2. угол ACB — прямой.

Кто умный?

Update: Умный — Centaur.

Дальше
6 комментариев
Oleg Andreev 2004
  1. k=-(xB-xA)/(yB-yA); p = (yA+yB)/2 — k*(xA+xB)/2; Все координаты C: k*x + p = y
    Если yB-yA = 0, то любые yC и xC = (xA+xB)/2
  1. (x-(xB-xA)/2)^2 + (y-(yB-yA)/2)^2 = [(xB-xA)^2+(yB-yA)^2]/4. Есть исключительные случаи: A=C или B=C
Улитка 2004

А тригонометрией пользоваться можно?

IronRat 2004

A(xvvAvv, yvvAvv); B(xvvBvv, yvvBvv); O(xvvOvv, yvvOvv)
O(xvvOvv, yvvOvv) — середина отрезка AB, где xvvOvv = (xvvAvv + xvvBvv) / 2, yvvOvv = (yvvAvv + yvvBvv) / 2
y = kx + b — уравнение прямой, проходящей через точки A и B, где
k = (yvvBvv — yvvAvv) / (xvvBvv — xvvAvv),
b = (xvvBvvyvvAvv — xvvAvvyvvB) / (xvvBvv — xvvAvv)
y = -(1/k)x + bvv1vv — уравнение прямой, перпендикулярной данной
bvv1vv = y + (1/k)x
подставив вместо x и y xvvOvv и yvvOvv соответственно, получим уравнение прямой, перпендикулярной данной и проходящей через точку O(xvvOvv, yvvOvv):
y = -(1/k)x + (yvvOvv + (1/k)xvvOvv).
Расстояние, которое необходимо отложить от точки О по полученной прямой равно отрезку OA:
OA = корень((xvvAvv — xvvOvv)^^2^^ + (yvvAvv — yvvOvv)^^2^^)
тут мне думать надоело и я пошел спать... :))
может ночью что приснится....
(а вообще, есть уравнение прямой, есть длина отрезка от заданной точки на этой прямой, найти вторую точку, также лежащую на данной прямой — делов-то :)

IronRat 2004

Ну, например, решить систему уравнений:
OA = корень((xvvCvv — xvvOvv)^^2^^ + (yvvCvv — yvvOvv)^^2^^)
yvvCvv = -(1/k)xvvCvv + bvv1vv
Если сделаешь все это и получишь координаты точки С — можешь считать себя грязным извращенцем.

Ultima 2004

Илья!
Что тут делают фидошники?

Илья Бирман

Учитывая всё это меня больше интересует другой вопрос: что тут делаешь ты?

Centaur 2004

Вы как-то сложно думаете…

Пусть O = середина AB:
O = (A + B) / 2, покоординатно.
Пусть также
r = B — O = (B — A) / 2, опять же покоординатно.
Из второго условия — C лежит на окружности с диаметром AB. То есть с центром в O и радиусом r.
Из первого условия — C лежит на серединном перпендикуляре к отрезку AB. То есть на перпендикуляре в точке O.
Перпендикуляр к вектору r = (rvvxvv, rvvyvv) есть, например, r’ = (-rvvyvv, rvvxvv).
Отсюда C = O ± r’,
xvvC,1vv = (xvvAvv + xvvBvv — yvvBvv + yvvAvv) / 2,
yvvC,1vv = (yvvAvv + yvvBvv + xvvBvv — yvvAvv) / 2,
xvvC,2vv = (xvvAvv + xvvBvv + yvvBvv — yvvAvv) / 2,
yvvC,1vv = (yvvAvv + yvvBvv — xvvBvv + yvvAvv) / 2.

Илья Бирман

Спасибо большое, работает.

Мои книги