Другие языки программирования и технологии

Подскажите пожалуйста как решить эти задачи!!

1). На плоскости заданы три точки. Вычислить площадь треугольника, вершинами которого являются эти точки. Проверить, что эти точки лежат не на одной прямой( если точки лежат на одной прямой, то площадь треугольника равна 0). 2). Написать программу, рисующую в центре экрана равными цветами окружностями от 10 до 200 пикселей с шагом в 10 пикселей.
В первой задаче использовать формулу Герона очень плохо.

Упс. Можете меня пинать ногами, я вас обманул, так как модуль векторного произведения равен площади параллелограмма построенного на векторах, а площадь треугольника равна половине площади параллелограмма.

Так как заданы координаты точек, то лучше всего использовать векторное произведение для нахождения площади треугольника.

Пусть заданы точки треугольника A(xa, ya), B(xb, yb), C(xc, yc).

Тогда площадь треугольника S_ABC равна, например, половине модуля векторного произведения векторов AB и AC.

Для того чтобы посчитать векторное произведение AB и AC будем рассматривать их в 3х мерном пространстве дополнив третьей компонентой равной 0.

Координаты векторов:
AB = (xb - xa, yb - ya, 0),
AC = (xc - xa, yc - ya, 0).

Тогда их векторное произведение:
[AB, AC] = (0, 0, (xb - xa)*(yc - ya) - (xc - xa)*(yb - ya)).

Модуль векторного произведения:
|[AB, AC]| = |(xb - xa)*(yc - ya) - (xc - xa)*(yb - ya)|.

Вот она заветная формула площади (3 умножения и 5 вычитаний) :
S_ABC =0.5*|(xb - xa)*(yc - ya) - (xc - xa)*(yb - ya)|.
СР
Сергей Рыгин
2 433
Лучший ответ
1) проверить не лежат ли точки на одной прямой и затем посчитать расстояние между этими точками (sqrt((x2-x1)^2+(y2-y1)^2)) затем воспользовать формулой герона (S=sqrt(p(p-a)(p-b)(p-c)) p-полупериметр)
2) циклом расивать окружности где радиус это счетчик * шаг