我不明白为什么这段代码会这样:
只有左下角的三角形似乎在绘制,但内三角形只出现在顶部和右下三角形的第一个深度.我希望程序是递归的,但它是某种原因导致我的糟糕的编程技巧不是递归的.我真的想要了解我做错了什么.
implementation
{$R *.dfm}
var
count : integer = 0;
procedure DrawTriangle(aCanvas: TCanvas;x,y,size : extended;n : integer);
var
h : extended;
w : extended;
i : integer;
x1,x2,x3,y1,y2,y3 : extended;
begin
w := size;
h := size;
x1 := x;
y1 := y;
//ShowMessage(FloatToStr(w)+' '+FloatToStr(h));
if aCanvas<>nil then
try
//1st - left
aCanvas.MoveTo(Round(x1),Round(y1));
aCanvas.LineTo(Round(x1+w*2),Round(y1));
aCanvas.LineTo(Round(x1+w),Round(y1-h));
aCanvas.LineTo(Round(x1),Round(y1));
//2nd - right
x2 := x1+w*2;
y2 := y1;
aCanvas.MoveTo(Round(x2),Round(y2));
aCanvas.LineTo(Round(x2+w*2),Round(y2));
aCanvas.LineTo(Round(x2+w),Round(y2-h));
aCanvas.LineTo(Round(x2),Round(y2));
//3rd - top
x3 := x2-w;
y3 := y2-h;
aCanvas.MoveTo(Round(x3),Round(y3)); …Run Code Online (Sandbox Code Playgroud) delphi ×1