Also ein Dreieck wird ganz einfach skalliert :
Delphi-Quellcode:
Procedure Scale3eck(var p1,p2,p3:Tpoint;Prozent:Double);
var mx,my:Double;
dx,dy:Double;
begin
// erst mal den Mittelpunkt berechnen
mx := ( p1.x + p2.x +p3.x)/3;
my := ( p1.y + p2.y +p3.y)/3;
// Mit Hilfe des Mittelpunktes kann man die Translation in den Ursprung machen
dx := (p1.x - mx);
dy := (p1.y - my);
p1.x := round( dx * Prozent + mx)
p1.y := round( dy * Prozent + my)
dx := (p2.x - mx);
dy := (p2.y - my);
p2.x := round( dx * Prozent + mx)
p2.y := round( dy * Prozent + my)
dx := (p3.x - mx);
dy := (p3.y - my);
p3.x := round( dx * Prozent + mx)
p3.y := round( dy * Prozent + my)
end;
Edit : Ah Tyrael Y. war doch schneller, aber mein Algo macht genau das selbe wie er beschrieben hat.