
15.06.2015, 09:12
|
Прохожий
|
|
Регистрация: 15.06.2015
Сообщения: 4
Версия Delphi: Delphi 7
Репутация: 10
|
|
Есть какие то гугления и нароботки
Например нашёл процедуру создания треугольника.
Код:
procedure TForm1.Button1Click(Sender: TObject);
var a, b, c : integer;
t1, t2, t3 : TPoint;
ugol : double;
begin
a := 200;
b := 200;
c := 350;
if (a+b>c) and (b+c>a) and (a+c>b) then begin
Memo1.Lines.Append('может быть такой!');
t1.x := 0;
t1.y := 0;
t2.x := a;
t2.y := 0;
ugol := arccos( (sqr(b) - sqr(a) - sqr(c)) / (2*a*c) );
t3.x := - trunc(c* cos(ugol));
if t3.x < 0 then begin
// сдвигаем весь треугольник по оси X
t1.x := t1.x - t3.x;
t2.x := t2.x - t3.x;
t3.x := t3.x - t3.x; // кстати, тут должен ноль получится...
end;
t3.y := trunc(c* sin(ugol));
Canvas.Polygon([t1, t2, t3]);
Memo1.Lines.Append('X1, Y1 = '+IntToStr(t1.x)+' , '+IntToStr(t1.y));
Memo1.Lines.Append('X2, Y2 = '+IntToStr(t2.x)+' , '+IntToStr(t2.y));
Memo1.Lines.Append('X3, Y3 = '+IntToStr(t3.x)+' , '+IntToStr(t3.y));
end
else
Memo1.Lines.Append('НЕ Может Быть!');
end;
|