Графика, очень срочно

  • Автор темы Guest
  • Дата начала
Статус
Закрыто для дальнейших ответов.
G

Guest

#1
Здравствуйте! Помогите пожалуйста... Очень срочно. Нужно в окружность вписать равносторонний треугольник. и чтоб он со спинэдитом был связан. вот код программы, круг я нарисовала все работает а вот треугольник не получается =((((
 

Вложения

09.11.2009
665
1
#3
Код:
procedure TForm36.Button1Click(Sender: TObject);
var i,r,r_const,x,y,x1,y1,x2,y2,x3,y3,n:integer;
begin
paintbox1.Canvas.FillRect(paintbox1.ClientRect);
r:=50; //радиус первого круга
r_const:=r;
n:=3;//количесто (окружностей+треугольников)/2
for i:=1 to n do
begin
r:=r div i;
x:=r_const-r;
y:=r_const-r;
x1:=r;
y1:=0;
y2:=r+r div 2;
y3:=y2;
x2:=r-round(r*sqrt(3/4));//*sqrt(3/4) берем из формулы x*x+y*y=r*r, подставив в неё х=r*r/4 получим что y=r*sqrt(3/4)
//sqrt - арифметический корень
x3:=r+round(r*sqrt(3/4));
paintbox1.Canvas.Ellipse(x,y,r*2+x,r*2+y);
paintbox1.Canvas.MoveTo(x+x1,y+y1);
paintbox1.Canvas.LineTo(x+x2,y+y2);
paintbox1.Canvas.LineTo(x+x3,y+y3);
paintbox1.Canvas.LineTo(x+x1,y+y1);
end;
end;
Результат:
12345.jpg


ЗЫ Что означает К (на картинке)?
 

Вложения

Статус
Закрыто для дальнейших ответов.