![]() |
Kreissegment drehen
Hallo in die Runde,
nachdem dies mein erstes Posting hier ist vorab ein paar Worte. (Hoffentlich habe ich die Rubrik zum Vorstellen nicht übersehen!) Ich habe mir das RAD-Studio 2009 als Trial geladen und versuche Delphi zu erlernen. Dazu möchte ich gern eine kleine Animation einer Lokomotivsteuerung (Hobby) erstellen. Die Basic`s hoffe ich verstanden zu haben. Auch die Umsetzung mathematischer Hintergründe gelingt langsam und ich kann mechanische Abhängigkeiten per Canvas sichtbar machen. So läuft mittlerweile ein animierter Kurbeltrieb mit Kolben, Zylinder etc. Nun stehe ich vor folgendem Problem: Ein Kreissegment soll um einen Punkt der auf diesem Kreisbogens liegt gedreht werden.(Kulisse) Canvas bietet ja die Möglichkeit mit "Arc" einen Kreisbogen zu zeichnen nur das Drehen macht mir Probleme. Wenn ich die Koordinaten des umschließenden Rectangles drehe funktioniert das nicht mehr. Die Suche hier und auch an anderer Stelle hat mich nicht richtig weiter gebracht.. Zur späteren Nutzung wäre es gut weitere Punkte auf diesem Segment genau bestimmen zu können. über eine Hilfestellung wäre ich dankbar mfG Hannes |
Re: Kreissegment drehen
In folgendem Artikel sind Funktionen zum Drehen von Punkten im 2-dimensionalen Raum.
![]() Wenn du einen Kreisbogen drehen möchtest musst als Punkte auf den Ursprung verschieben, dann um den entsprechenden Winkel drehen und dann an die Position verschieben, an dem du ihn brauchst. Ich würde empfehlen, zuerst mal mit einem Dreieck zu beginnen (Zeichnen mit MoveTo und LineTo) um ein Gefühl für das Drehen und Verschieben zu bekommen. |
Re: Kreissegment drehen
Hallo sx2008,
vielen Dank, das ging ja schnell! Da werde ich mich einarbeiten müssen. Es fällt schon etwas schwer nach ca. 20 Jahren Programmierabstinenz wieder rein zu kommen. mfG Hannes |
Re: Kreissegment drehen
Herzlich willkommen :dp:
bin ja auch schon 50++, aber wenn was hakt, ist man hier gut aufgehoben. :) |
Re: Kreissegment drehen
Hallo Wolfgang,
vielen Dank für die nette Begrüßung! Ich habe ja, als Gast, hier schon einige Zeit verbracht. Leider werde ich mit meinem Anfänger(un)wissen für längere Zeit nur zu den Lesenden gehören. mfG Hannes |
Re: Kreissegment drehen
Das wäre schade :( ,
von Deinen Fortschritten mit Canvas könnten doch auch andere, z.B. meine Schüler profitieren, ich allerdings auch. Sei 'mal nicht so bescheiden. :) Gruß Wolfgang |
Re: Kreissegment drehen
Hallo Wolfgang,
es hat mich jetzt schon überrascht, das Interesse an meinen ersten Gehversuchen besteht. Ich will versuchen davon, auch wenn es sicher zur allgemeinen Belustigung der Profi`s beitragen wird, Etwas zu zeigen. Allerdings nicht mehr heute.. mfG Hannes |
Re: Kreissegment drehen
Liste der Anhänge anzeigen (Anzahl: 1)
Hallo Hannes,
ein Kreissegment mit Canvas zu drehen, ist für viele schon eine große Herausforderung. Ohne Übertreibung behaupte ich einmal, daß 90% meiner Schüler ohne Hilfe damit überfordert wären (Fachgymnasium 11. Jahrgang). Amüsieren wird sich hier über Deinen Code, zumindest von den Experten, kein einziger. Du mußt allerdings damit rechnen, daß Dein Code aus mehreren Gedankenrichtungen optimiert wird, was ja ja prima ist. Auf abwertende Kommentare achten schon die Moderatoren. Also, wir freuen uns, Dich wieder zu sehen :!: Gruß Wolfgang PS: Zeige doch einmal bitte, wenn auch nur als EXE-Datei, Deine beschriebenen Übungen, dann kann man weniger meckern :) Anbei eine Schülerarbeit aus dem 11. Jahrgang |
Re: Kreissegment drehen
Liste der Anhänge anzeigen (Anzahl: 1)
Hallo Wolfgang,
Deine Antwort hat mir etwas Mut gemacht. Anbei mein Machwerk.. Mit "Projekt - neu - Zylinder/Rahmen" kann man eigene Maße eingeben. Diese werden dann mit dem Button "aktualisieren" in die Animation übernommen. Leider stimmt die Skalierung nur bei einer Auflösung von 1024x768. Da muß ich auch noch nachbessern. freundliche Grüße Hannes |
Re: Kreissegment drehen
Ich würde allerdings von so einer Funktion abraten (wie die von sx2008 verlinkte). Punkte zu drehen ist ja weniger ein programmiertechnisches Problem, eher ein mathematisches. Ist eigentlich nur Grundwissen über Trigonometrische Funktionen und Satz des Pythagoras.
|
Re: Kreissegment drehen
Hallo Jakob,
das ich mit Formeln arbeiten muß ist schon klar. Hab ich ja auch schon an anderer Stelle praktiziert. Als Anfänger muß ich aber auch die Ergebnisse im Quellcode umsetzen können. Wie würdest Du das machen? Ich hatte daran gedacht den Kreisbogen zu "plotten".. mfG Hannes |
Re: Kreissegment drehen
Zitat:
Willst du damit sagen, es wäre besser, die Funktionen nicht zu benützen und stattdessen die Formeln an der Stelle auszuprogrammieren, an der man sie braucht? Dem möchte ich entgegenhalten: Es ist viel besser die Funktionen zu benützen, weil sie a.) getestet und fehlerfrei sind und b.) den Programmcode vereinfachen. Der minimale Overhead durch den Funktionsaufruf ist vernachlässigbar. Programmieren bedeutet ständig neue Ebenen der Abstraktion zu bilden. Aus kleinen Bausteinen werden grössere Dinge gebaut. Das Drehen und Verschieben von Punkten muss man geradezu in Funktionen packen, da man nur so den Überblick behält. Verzichtet man auf die kleinen Helferfunktionen entsteht Spaghetticode! |
Re: Kreissegment drehen
Hallo shmia,
Deine Erklärung macht Sinn, vor Allem weil ich ja diese Funktion mehrmals brauchen werde. Mit dem verlinkten Qellcode habe ich mich beschäftigt allerdings habe ich da leider noch einige Verständnisprobleme. Wäre es möglich diesen Code etwas zu kommentieren? Ich möchte das Ganze besser verstehen können und nicht nur Codeschnipsel kopieren. Sorry, aber ich bin halt noch ganz am Anfang... mfG Hannes |
Re: Kreissegment drehen
Hannes deine Anwendung flimmert etwas du solltest mal den Dblbuffer auf der Form Aktiviren
|
Re: Kreissegment drehen
Du meinst DoubleBuffered ;)
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:15 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 by Thomas Breitkreuz