level 10
已经解决了,换了个思路用画椭圆的arc画圆弧。
procedure shuchu_arc(r,zero_x,zero_y,star_x,star_y,end_x,end_y:integer);
//(R=半径,zero_x=圆心x,zero_y=圆心y,star_x=起点x,star_y=起点y,end_x=终点x,end_y=终点y,逆时针画弧)
var
m1,m2,m3,m4,origin_x,origin_y:Integer;
begin
origin_x:=trunc(Form1.image3.Width/2); //重新定义原点
origin_y:=trunc(Form1.image3.Height/2);
zero_x :=origin_x+zero_x; //重新定义X坐标
zero_y :=origin_y-zero_y; //Y坐标翻转一下
star_x:=origin_x+star_x ;
star_y:=origin_y-star_y ;
end_x :=origin_x+end_x ;
end_y :=origin_y-end_y ;
m1:=zero_x-r;
m2:=zero_y-r;
m3:=zero_x+r;
m4:=zero_y+r;
ceshi('范围1='+inttostr(m1)+'/'+inttostr(m2));
ceshi('范围2='+inttostr(m3)+'/'+inttostr(m4));
ceshi('圆心='+inttostr(zero_x)+'/'+inttostr(zero_y));
ceshi('起点='+inttostr(star_x)+'/'+inttostr(star_y));
ceshi('终点='+inttostr(end_x)+'/'+inttostr(end_y));
Form1.image3.Canvas.arc(m1,m2,m3,m4,star_x,star_y,end_x ,end_y);
end;
procedure TForm1.Button5Click(Sender: TObject);
begin
shuchu_arc(100,0,0,0,100,-100,0);
//(R=半径,zero_x=圆心x,zero_y=圆心y,star_x=起点x,star_y=起点y,end_x=终点x,end_y=终点y,逆时针画弧)
end;
2017年05月20日 14点05分

