Итак, вот в чем проблема. Мне даны длины трех сторон треугольника. Программа вычисляет площадь данного треугольника, используя детерминанты. Я предполагаю, что одна вершина треугольника находится в точке (0,0), а вторая - в (c, 0), где c - длина самой длинной стороны. Так что бы было проще всего получить координаты 3-й вершины. Я попробовал теорему косинуса, чтобы получить уравнение линии, через которое проходит сторона, но это немного не так. У меня есть программа для определения решимости, если она вам нужна:
float det(int n, float mat[3][3])
{
int d=0;
int c, subi, i, j, subj;
float submat[3][3];
if(n == 2) {
return( (mat[0][0] * mat[1][1]) - (mat[1][0] * mat[0][1]));
}
else{
for(c = 0; c < n; c++){
subi = 0;
for(i = 1; i < n; i++){
subj = 0;
for(j = 0; j < n; j++){
if (j == c){
continue;
}
submat[subi][subj] = mat[i][j];
subj++;
}
subi++;
}
d = d + (pow(-1 ,c) * mat[0][c] * det(n - 1 ,submat));
}
}
return d;
}
. , .
ans=det.det(3,coords)*0.5;
Пример изображения треугольника, построенного в GeoGebra: