Ich pack mal n Stückchen vom originalen Quelltext ran:
Delphi-Quellcode:
breite1:=round((Bild1.Picture.Bitmap.Width*Bild1.Picture.Bitmap.Height)*2*0.0000001)+5;
breite2:=round((Bild2.Picture.Bitmap.Width*Bild2.Picture.Bitmap.Height)*2*0.0000001)+5;
if x1<x2 then
begin
for i:=(x2-x1) to ((x2-x1)+breite2) do
begin
Bild2.Picture.Bitmap.Canvas.MoveTo(i,0);
Bild2.Picture.Bitmap.Canvas.LineTo(i,Bild2.Picture.Bitmap.Height);
end;
end;
if x1>x2 then
begin
for i:=(x1-x2) to ((x1-x2)+breite1) do
begin
Bild1.Picture.Bitmap.Canvas.MoveTo(i,0);
Bild1.Picture.Bitmap.Canvas.LineTo(i,Bild1.Picture.Bitmap.Height);
end;
end;
if Bild1.Picture.Bitmap.Width-x1<Bild2.Picture.Bitmap.Width-x2 then
begin
for i:=(x2+(Bild1.Picture.Bitmap.Width-x1)) to ((x2+(Bild1.Picture.Bitmap.Width-x1))+breite2) do
begin
Bild2.Picture.Bitmap.Canvas.MoveTo(i,0);
Bild2.Picture.Bitmap.Canvas.LineTo(i,Bild2.Picture.Bitmap.Height);
end;
end;
if Bild1.Picture.Bitmap.Width-x1>Bild2.Picture.Bitmap.Width-x2 then
begin
for i:=(x1+(Bild2.Picture.Bitmap.Width-x2)) to ((x1+(Bild2.Picture.Bitmap.Width-x2))+breite1) do
begin
Bild1.Picture.Bitmap.Canvas.MoveTo(i,0);
Bild1.Picture.Bitmap.Canvas.LineTo(i,Bild1.Picture.Bitmap.Height);
end;
end;
if y1<y2 then
begin
for i:=(y2-y1) to (y2-y1+breite2) do
begin
Bild2.Picture.Bitmap.Canvas.MoveTo(0,i);
Bild2.Picture.Bitmap.Canvas.LineTo(Bild2.Picture.Bitmap.Width,i);
end;
end;
if y1>y2 then
begin
for i:=(y1-y2) to (y1-y2+breite1) do
begin
Bild1.Picture.Bitmap.Canvas.MoveTo(0,i);
Bild1.Picture.Bitmap.Canvas.LineTo(Bild1.Picture.Bitmap.Width,i);
end;
end;
if Bild1.Picture.Bitmap.Height-y1<Bild2.Picture.Bitmap.Height-y2 then
begin
for i:=(y2+(Bild1.Picture.Bitmap.Height-y1)) to ((y2+(Bild1.Picture.Bitmap.Height-y1))+breite2) do
begin
Bild2.Picture.Bitmap.Canvas.MoveTo(0,i);
Bild2.Picture.Bitmap.Canvas.LineTo(Bild2.Picture.Bitmap.Width,i);
end;
end;
if Bild1.Picture.Bitmap.Height-y1>Bild2.Picture.Bitmap.Height-y2 then
begin
for i:=(y1+(Bild2.Picture.Bitmap.Height-y2)) to ((y1+(Bild2.Picture.Bitmap.Height-y2))+breite1) do
begin
Bild1.Picture.Bitmap.Canvas.MoveTo(0,i);
Bild1.Picture.Bitmap.Canvas.LineTo(Bild1.Picture.Bitmap.Width,i);
end;
end;
x1,x2,y1,y2 sind die Koordinaten von 2 Punkten (jeweils einer in einem Bild).
Und dann soll von diesen Punkten aus in alle 4 Richtungen der kleinste Abstand zur Wand gemessen werden und diese Wand in das größere Bild als Strich gemalt werden.