Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Нужна помощь.Помогите с математической частью программы на С++

Серегей Профи (531), на голосовании 12 лет назад
У квадрата ABCD на плоско¬сти известны координаты двух противоположных вер¬шин — точек А и С. Найти координаты точек В и D. Примечание. Расположение квадрата произвольно; его стороны не обязательно параллельны координатным осям.
Голосование за лучший ответ
Андрей Мельников Мыслитель (6933) 12 лет назад
Пусть известны координаты (xA,yA) и (xC,yC).
Можно найти середину диагонали квадрата (точка O):
x0=(xA+xC)/2
y0=(yA+yC)/2
Найдем координаты вектора OA:
(x1,y1)=(xA-x0,yA-y0)
Координаты перпендикулярного ему вектора той же длины равны:
(x2,y2)=(y1,-x1) (проверяется через скалярное произведение)
Диагонали квадрата пересекаются под прямым углом и точкой пересечения делятся пополам, поэтому координаты оставшихся точек равны:
(xB,yB)=(x0,y0)+(x2,y2)
(xD,yD)=(x0,y0)-(x2,y2)
Похожие вопросы