Hey, ja so hab ich das jetzt auch gemacht =) :
Delphi-Quellcode:
winkel:=strtoint(Edit1.Text);//(45)
Ax := round(cos(degtorad(winkel)) * (A.x-xpos) - sin(degtorad(winkel)) * (A.y-ypos));
Ay := round(sin(degtorad(winkel)) * (A.x-xpos) + cos(degtorad(winkel)) * (A.y-ypos));
A:=Point(xpos+Ax,ypos+Ay);
Bx := round(cos(degtorad(winkel)) * (B.x-xpos) - sin(degtorad(winkel)) * (B.y-ypos));
By := round(sin(degtorad(winkel)) * (B.x-xpos) + cos(degtorad(winkel)) * (B.y-ypos));
B:=Point(xpos+Bx,ypos+By);
Cx := round(cos(degtorad(winkel)) * (C.x-xpos) - sin(degtorad(winkel)) * (C.y-ypos));
Cy := round(sin(degtorad(winkel)) * (C.x-xpos) + cos(degtorad(winkel)) * (C.y-ypos));
C:=Point(xpos+Cx,ypos+Cy);
Image1.Canvas.Polygon([A,B,C]);
Jetzt bleiben nur noch 2 Probleme:
1. Wie kann ich das alte Dreieck vorher löschen? Also ich will das nicht mit z.B. weiss nochmal übermalen (falls das überhaupt geht),
sondern einfach löschen, so dass immer n ur 1 Dreieck angezeigt wird, geht das?
2. Wenn ich auf vorwärts gehen klicke, dann soll das dreieck um 10 nach vorne springen, allerdings in die jeweilige richtung in der es gedreht ist.
Z.B. 90 drehen, dann 10 vorwärts -> 10 schritte nach rechts.
Hast du da evtl. auch eine Lösung für mich parat? =)
Übrigens echt super wie einem hier in diesem Forum geholfen wird, lobt sich sowas
MfG