Delphi ошибка

программирование Delphi делфи ошибка

procedure TForm1.Button1Click(Sender: TObject);
var i,j:integer; r:integer; x,y:integer; mas2:array [1..10, 1..2] of integer;
begin

for i:= 1 to n-1 do
begin
for j:=1 to n-1 do
begin
if mas.Cells[i,j]=mas.Cells[0,0]
//(mas.Cells[i,j]<>'1') or (mas.Cells[i,j]<>'2') or (mas.Cells[i,j]<>'3')
then mas.Cells[i,j]:='0';
// mas.Cells[i,j]:=mas.Cells[j,i];
end;
end;
PaintBox1.Canvas.brush.Color:=clWhite;
PaintBox1.Canvas.pen.Color:=clWhite;
PaintBox1.Canvas.pen.width:=3;
PaintBox1.Canvas.Rectangle(0,0,300,300);
PaintBox1.Canvas.brush.Color:=clBlack;
PaintBox1.Canvas.pen.Color:=clBlack;
x:= 150; y:= 150;
for i:=1 to n-1 do
begin
x:=150-Round(100*cos(360/(n-1)*i/57.3));
//label1.Caption:=label1.caption+inttostr(Round(100*cos(360/(n-1)*i/57.3)))+' ';
y:=150-Round(100*sin(360/(n-1)*i/57.3));
//label2.Caption:=label2.caption+inttostr(Round(100*sin(360/(n-1)*i/57.3)))+' ';
mas2[i,1]:=x; mas2[i,2]:=y;
tochka(x,y);
end;
for i:= 1 to n-1 do
for j:= 1 to n-1 do
begin
if i<>j {and mas.Cells[i,j]<>''} then
case strtoint(mas.Cells[i,j]) of
1: begin
PaintBox1.Canvas.MoveTo(mas2[i,1],mas2[i,2]);
PaintBox1.Canvas.LineTo(mas2[j,1],mas2[j,2]);
PaintBox1.Canvas.Arc(x-r,y-r,x+r,y+r,mas2[i,1],mas2[i,2],mas2[j,1],mas2[j,2]);
end;
2: begin
PaintBox1.Canvas.Brush.Color := clWhite;
PaintBox1.Canvas.MoveTo(mas2[i,1],mas2[i,2]);
PaintBox1.Canvas.LineTo(mas2[j,1],mas2[j,2]);
r:=round(sqrt(sqr(abs(mas2[j,1]-mas2[i,1]))+sqr(abs(mas2[j,2]-mas2[i,2])))/2);
x:=round((mas2[i,1]+mas2[j,1])/2); y:=round((mas2[i,2]+mas2[j,2])/2);
//PaintBox1.Canvas.ellipse(round((mas2[i,1]+mas2[j,1])/2)-r,round((mas2[i,2]+mas2[j,2])/2)-r,round((mas2[i,1]+mas2[j,1])/2)+r,round((mas2[i,2]+mas2[j,2])/2)+r);
//PaintBox1.Canvas.ellipse(x-r,y-r,x+r,y+r);
PaintBox1.Canvas.Arc(x-r,y-r,x+r,y+r,mas2[i,1],mas2[i,2],mas2[j,1],mas2[j,2]);
label1.caption:=inttostr(mas2[i,1])+' '+inttostr(mas2[i,2])+' '+inttostr(mas2[j,1])+' '+inttostr(mas2[j,2]);
end;
end;
end;
{ for i:=1 to n-1 do
begin
tochka(mas2[i,1],mas2[i,2]);
end; }
end;


при рисовании дуги PaintBox1.Canvas.Arc(x-r,y-r,x+r,y+r,mas2[i,1],mas2[i,2],mas2[j,1],mas2[j,2]);
рисует почему-то замкнутую дугу
подскажите в чем ошибка?
Ответы:
если речь о случае, когда strtoint(mas.Cells[i,j]) = 2, то можно убрать
PaintBox1.Canvas.MoveTo(mas2[i, 1], mas2[i, 2]);
PaintBox1.Canvas.LineTo(mas2[j, 1], mas2[j, 2]);
тогда арки будут без замыкающей линии


11 лет назад

RPI.su - самая большая русскоязычная база вопросов и ответов. Наш проект был реализован как продолжение популярного сервиса otvety.google.ru, который был закрыт и удален 30 апреля 2015 года. Мы решили воскресить полезный сервис Ответы Гугл, чтобы любой человек смог публично узнать ответ на свой вопрос у интернет сообщества.

Все вопросы, добавленные на сайт ответов Google, мы скопировали и сохранили здесь. Имена старых пользователей также отображены в том виде, в котором они существовали ранее. Только нужно заново пройти регистрацию, чтобы иметь возможность задавать вопросы, или отвечать другим.

Чтобы связаться с нами по любому вопросу О САЙТЕ (реклама, сотрудничество, отзыв о сервисе), пишите на почту [email protected]. Только все общие вопросы размещайте на сайте, на них ответ по почте не предоставляется.