![]() |
Polygonzug drehen
Hallo,
das ist mein erster Kommentar hier im Forum und ich hätte gleich mal eine Frage bzgl. der Grafikprogrammierung Also im Rahmen meines Bauningenieurstudiums muss ich ein Delphieprogramm erstellen. Zum Porgramm: Zitat:
Jedoch verzweifle ich an den Punkt mit dem "drehen". Ich habe natürlich schon im Internet recharchiert da findet man Sachen wie (Verschiebung in den Ursprung, Geometrische Transalation, Winkel auf die Punkte addieren und wieder zurück verschieben). Bei dieser Lösung ist mein Problem das ich keine Ahnung habe wie ich den Polygon in den Ursprung verschiebt :( Hier mal meine Syntax zum Erstellen den Polygonzuges:
Delphi-Quellcode:
Ich hoffe mir kann einer von Euch ein Lösungsansatz nennen wie ich es möglichst "einfach" hinbekomme,
procedure TForm4.Polygonverbinden1Click(Sender: TObject);
var i:integer; begin n:=n+1; xp[n]:=xp[1]; yp[n]:=yp[1]; image1.canvas.moveto (xp[n],yp[n]); for i:=n+1 to n-1 do image1.Canvas.MoveTo(xp[i],yp[i]); for i:=1 to n-1 do image1.canvas.lineto (xp[i+1], yp[i+1]); end; end. weil es wirklich nur dieses eine Programm in Delphi ist was ich schreiben muss. Vielen Dank Peach |
Re: Polygonzug drehen
1: Winkel und Entfernung eines Punktes zum ersten Punkt berechnen
2: neue relative Position des Punktes berechnen, abhängig von Punkt 1 und dabei den Winkel um W ändern 3: relative Position in absolute Position umrechnen (rel. Position plus Prosition des 1. Punktes) (2 und 3 kann man auch zusammenfassen) das für alle Punkte 2 bis n machen und dann nur noch das Polygon zeichnen |
Re: Polygonzug drehen
Liste der Anhänge anzeigen (Anzahl: 1)
Hi,
ale Punkte so verschieben dass der erste Punkt im Nullpunkt liegt. Dann alle (ausser dem ersten) Punkte um den Nullpunkt drehen. Dann zurückverschieben! Verschiebung in den Nullpunkt: Sei x0,y0 der erste Punkt und xa,ya ein beliebiger deines Polygonzuges(xq und yq sind die verschobenen Koordinaten): xq:=xa-x0 yq:=ya-y0 danach drehst du (um den ursprung alle Punkte ausser den Anfangspunkt): findest du unter Wikipedia danach verschiebst du zurück: xq2:=xq+x0 yq2:=yq+y0 Das sollte dir helfen deine Hausaufgaben zu erledigen! (Kann man aber mit etwas gutem Willen selbst herausfinden) Damit du es besonders bequem hast habe ich dir die Grundlagen angehängt. Stoff Realschule 10.Klasse. Viele Grüsse! |
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:12 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz