Привет всем!
По заданным координатам вершин А, В и С треугольника найти его сумму длин медиан. Изобразить треугольник на экране с медианами.
Помогите чем нить!! Особенно как всё это дело изобразить не очень ясно!! С помощью класса TCanvas или как?!
mahmut, курс геометрии средней школы:
длина медианы, проведенной к стороне A равна:
формула есть:Длина медиана, проведённой к стороне c, равна половине квадратного корня из (2a^2 + 2b^2 - c^2)
А рисовать, действительно, проще всего по канве. (например, TImage или TPaintBox) Находишь координаты середин сторон, и просто проводишь шесть линий - треугольник с медианами готов
В который раз запоздал с ответом...
З.Ы. и главное, в трёхсотом сообщении...
mahmut а попроще (что-то в таком духе):
function get_side(xst, yst, xfn, yfn: double): double;
begin
result := sqrt(sqr(xst - xfn) + sqr(yst - yfn));
end;
function mediana(side_a, side_b, against: double): double;
begin
result := sqrt(2 * (sqr(side_a) + sqr(side_b)) - sqr(against)) / 2;
end;
procedure TForm.get_medians;
var
len_a, len_b, len_c: double;
sum: double;
begin
len_a := get_side(strtofloat(edit1.text), strtofloat(edit2.text),
strtofloat(edit3.text), strtofloat(edit4.text));
len_b := get_side(strtofloat(edit3.text), strtofloat(edit4.text),
strtofloat(edit5.text), strtofloat(edit6.text));
len_с := get_side(strtofloat(edit5.text), strtofloat(edit6.text),
strtofloat(edit1.text), strtofloat(edit2.text));
sum := mediana(len_b, len_c, len_a) + // медиана к стороне А
mediana(len_a, len_c, len_b) + // к стороне В
mediana(len_a, len_b, len_c); // к стороне С
{ вывод суммы медиан куда нужно... }
end;
Например, вот так:
triangle.rar ( 2.91 килобайт )
Кол-во скачиваний: 464
Тестировалось с такими значениями:
точка A: (10, 10)
точка B: (10, 2)
точка C: (2, 5)
Спасибо, огромное! Обучил не грамотного!!