Delphi Einstieg HILFE!!!(Stern-Vieleck)
Liste der Anhänge anzeigen (Anzahl: 1)
Hallo,
bin im 3 Semester und habe eine Praktikumsaufgabe gekriegt, da ich aber noch nie was mit Delphi zu tun gehabt habe kann ich die nicht lösen, kann mir vllt jemand bischen helfen wie man bei einer solcher Aufgabe vorgehen muss!!! :wall: :wall: :wall: |
Re: Hilfe!!! Stern-vieleck
Als allererstes gib bitte deinem beitrag einen ausagekräftigen Titel. Desweiteren wäre es schön, wenn du uns zeigst, was du schon bisher versucht hast. Bei konkreten Problem helfen wir gerne weiter, Hausaufgaben aber machen wir nicht.
|
Re: Hilfe!!! Stern-vieleck
Genau, hast Du die unter "Vorbereitung" beschriebenen Punkte bereits abgearbeitet? Da stehen doch bereits entscheidende Hinweise drin.
|
Re: Hilfe!!! Stern-vieleck
ich habe ja nicht umsonst geschrieben ,bitte hilft mir bei der Vorgehensweise, ich habe nicht gesagt macht mal meine Hausaufgabe!!!ich habe noch nie mit Delphi programmier hatte bis jetzt 2 Vorlesungen, in der Vorlesung geht der Prof schon davon aus das wir alle Befehle schon können
|
Re: Hilfe!!! Stern-vieleck
Zitat:
|
Re: Hilfe!!! Stern-vieleck
Das sollte dich aber nicht daran hindern deinem beitrag einen aussagekräftigen Titel zu geben. Du kannst ihn noch ändern, indem du deinen ersten Beitrag editierst.
Alles was du zum Zeichnen brauchst, sind die Routinen LineTo und MoveTo. Hinzukommen wahrscheinlich noch die [/oh]Winkelfunktionen[oh]. Das war es schon. |
Re: Hilfe!!! Stern-vieleck
Zitat:
|
Re: Hilfe!!! Stern-vieleck
Um mal ein paar Denkanstöße zu geben:
Das Problem lässt sich bedeutend einfach in Polarkoordinaten lösen. Es empfiehlt sich also, die eigentliche Problemlösung in Polarkoordinaten zu rechnen und dann eine Prozedur zu schrieben, die einen Punkt von Polarkoordinaten in einen Bildpunkt umrechnet. (Darin kannst du dann gleich das Runden machen)
Delphi-Quellcode:
Hierbei beachten: Die y-Achse im Bild zeigt nach unten und der Ursprung soll in der Bildmitte liegen. Also noch eine Spiegelung und eine Verschiebung machen.
function PolarToPixel(r, phi: Double) : TPoint
Die Punkte kannst du dann in MoveTo() uns LineTo() stecken, um eine Linie zu zeichnen. P.S.: Doch es sind Winkel gegeben. Indirekt - denn es soll ja eine regelmäßige Figur sein (alle Winkel gleich und alle Winkel zusammen ergeben 360°) und die Anzahl der Ecken wird ja eingegeben ;) |
Re: Hilfe!!! Stern-vieleck
Zitat:
löl ich weiß nicht mal was Lineto und MoveTo ist :( |
Re: Hilfe!!! Stern-vieleck
Ich fordere dich nun schon dritten mal auf den Beitragstitel zu ändern!
Das ist die Aufgabenstellung, richtig. Aber du musst Delphi sagen, WIE es den Stern zeichnen soll. Du hast einen Radius gegeben und die Anzahl der Zacken. Als allererstes musst du nun den Winkel zwischen den Zacken berechnen, damit du einen gleichmäßigen Stern bekommst. Und das ist Mathematik und abhängig von der Programmiersprache. Hast du die Formel denn schon? Zitat:
|
Re: Hilfe!!! Stern-vieleck
Dann klick doch einfach mal auf die Links, dafür hat Luckie die ja angelegt.
|
Re: Hilfe!!! Stern-vieleck
Zitat:
ich könnte nur dazu sagen 360°/Sternezahl PS: wie soll ich mein titel umändern??? |
Re: Hilfe!!! Stern-vieleck
Zitat:
das hab ich schon davor gemacht war nichts zu sehen da,keine erklärung |
Re: Hilfe!!! Stern-vieleck
Zitat:
|
Re: Hilfe!!! Stern-vieleck
Zitat:
1. Brauchst du doppelt so viele Punkte wie Zacken (je einen für die Spitze nach außen und einen für den inneren) 2. wird in Delphi mit Bogenmaß gerechnet, 360° entsprechen 2*PI Also Winkelschritt = Pi/Zackenzahl ;) Btw.: Sagen dir Polarkoordinaten was? P.S.: Die Links führen dich zu http://docs.embarcadero.com/products...as_MoveTo.html - da kannst du genau nachlesen was der Befehl macht. |
Re: Hilfe!!! Stern-vieleck
Zitat:
Und wie du deinen Beitragstitel änderst habe ich dir auch schon beschrieben. Keine Ahnung, wo ich heute Abend die Gedult hernehme. :roll: Noch ein Tipp: Zeichne dir mal einen drei zackigen Stern auf dem Papier auf und verbinde alle Eckpunkte mit dem Mittelpunkt. Dann guckst du da mal eine Weile drauf. ;) |
Re: Hilfe!!! Stern-vieleck
Zitat:
|
Re: Hilfe!!! Stern-vieleck
Zitat:
Noch eine Ergänzung: Elegant wäre es, wenn man alle Eckpunkte (außen und innen) berechnet und in einem Array ablegt und diese dann nacheinander einfach verbindet. Dafür gibt es, glaube ich, sogar eine Windows API Funktion, um einen Polygonzug zu zeichnen. Aber das wäre erst mal nur was für Fortgeschrittene. |
Re: Hilfe!!! Stern-vieleck
Ich will mal so nett sein. Läuft eh nix im TV :?
Delphi-Quellcode:
Zeichnet eine Linie von einem Punkt zu einem anderen Punkt ;)
procedure DrawLine(img: TImage; From, To: TPoint)
begin img.Canvas.MoveTo(From.X, From.Y); img.Canvas.LineTo(To.X, To.Y); end; |
Re: Hilfe!!! Stern-vieleck
Zitat:
Danke,hab ausprobiert ging aber nicht.ich muss doch bestimmt davor was vordefenieren , vor begin oder? |
Re: Delphi Einstieg HILFE!!!(Stern-Vieleck)
"ging aber nicht" ist hier ein Satz der regelmäßig Todesopfer fordert, weil Menschen Ihre Köpfe gegen die Wand donnern: :wall:
Okay, im Ernst: Poste die komplette Fehlermeldung und (wichtig) den Code den du geschrieben hast - dann kann dir auch geholfen werden ;) |
Re: Delphi Einstieg HILFE!!!(Stern-Vieleck)
Liste der Anhänge anzeigen (Anzahl: 1)
Zitat:
ich hab da ma versucht eine linie vom mittelpunkt zu zeichnen aber :siehe bild Fehler |
Re: Delphi Einstieg HILFE!!!(Stern-Vieleck)
Hi!
Das begin muss vor der Zeile mit dem with stehen. Außerdem musst du ihm natürlich sagen, von wo nach wo er die Linie zeichnen soll - mit x1 und x2 kann er nichts anfangen. Grüße, Frederic |
Re: Delphi Einstieg HILFE!!!(Stern-Vieleck)
Zitat:
Delphi-Quellcode:
Jetzt sagt er mir:[Fataler Fehler] Ausgabedatei 'C:\Program Files\Borland\Delphi6\Projects\Project1.exe' kann nicht erstellt werden
procedure TForm1.Image1Click(Sender: TObject);
begin with image1.canvas do image1.Canvas.MoveTo(0,70); image1.Canvas.LineTo(0,70); end; end. [edit=mkinzler]Delphi-Tag eingefügt Mfg, mkinzler[/edit] |
Re: Delphi Einstieg HILFE!!!(Stern-Vieleck)
Hi!
Bitte verwende die [delphi]-Tags, damit der Code besser lesbar ist. Zum Thema: Kann es sein, dass die exe nach läuft? Vllt. auch mal im Taskmanager schauen. Grüße, Frederic |
DP-Maintenance
Dieses Thema wurde von "mkinzler" von "Programmieren allgemein" nach "Multimedia" verschoben.
|
Re: Delphi Einstieg HILFE!!!(Stern-Vieleck)
Zitat:
|
Re: Delphi Einstieg HILFE!!!(Stern-Vieleck)
Wenn man ordentlich einrückt, sieht man sofort, was da los ist. Die Zeile mit dem "with" kannst Du aber auch weglassen, da die beabsichtigte Kürzung im Anschluss ja nicht erfolgt.
Delphi-Quellcode:
[edit] Und MoveTo und LineTo sollten ja auch unterschiedliche Koordinaten aufweisen, sonst kann ja keine Linie dabei herauskommen. [/edit]
procedure TForm1.Image1Click(Sender: TObject);
begin image1.Canvas.MoveTo(0,70); image1.Canvas.LineTo(0,70); end; |
Re: Delphi Einstieg HILFE!!!(Stern-Vieleck)
Zitat:
Zitat:
|
Re: Delphi Einstieg HILFE!!!(Stern-Vieleck)
Hi!
Wo das Image-Feld liegt, ist egal - die Koordinaten beziehen sich auf das Bild - nicht global. Aber, überlege doch mal, was du machen würdest (also so auf einem Blatt Papier), wenn du diese Anweisungen ausführen müsstest. Dann sollte dir was auffallen ;) Grüße, Frederic |
Re: Delphi Einstieg HILFE!!!(Stern-Vieleck)
Zitat:
das verstehe ich aber nicht, wie zeichne ich z.B. eine linie nach rechts mit 75 mm oder cm vom koordinatenursprung was soll ich für Moveto( / ) und für Lineto ( / ) eingeben??? |
Re: Delphi Einstieg HILFE!!!(Stern-Vieleck)
Noch einmal: versuch mal Folgendes
Delphi-Quellcode:
Hier sind beide Koordinaten unterschiedlich, es sollte also eine Linie gezogen werden.
procedure TForm1.Image1Click(Sender: TObject);
begin image1.Canvas.MoveTo(0,0); image1.Canvas.LineTo(0,70); end; |
Re: Delphi Einstieg HILFE!!!(Stern-Vieleck)
Zitat:
jetzt hab ich eine vertikale linie oben links in meinem imagefeld gekriegt,ich wollte aber eine andere linie zeichnen,damit ich verstehen kann was für eine rolle move/_lineto spielen bei koordinateneingabe und noch etwas wollte ich fragen wie zeichne ich ein kreis mit einem radius von 75 mm??? |
Re: Delphi Einstieg HILFE!!!(Stern-Vieleck)
MoveTo() poitioniert den Stift bei einer Koordinate, MoveTo() zieht eine Linie dorthin!
|
Re: Delphi Einstieg HILFE!!!(Stern-Vieleck)
MoveTo setzt die Stiftposition an die angegebene Koordinate, LineTo zeichnet eine Line von der aktuellen Stiftposition zur angegebenen Koordinate, welche daraufhin die aktuelle Stiftposition wird. Deine Aufgabe ist doch "nur noch", diese Koordinaten zu berechnen und die Linien zu zeichnen. Schau Dir doch den Source Deines Kollegen aus dem anderen Thread einmal an.
[edit] @Mods: könnte man nicht beide Threads zusammenfassen, auch wenn sie von verschiedenen Leuten erstellt wurden? Das wird sonst recht unübersichtlich. [/edit] |
Re: Delphi Einstieg HILFE!!!(Stern-Vieleck)
Zitat:
Bei MoveTo() musst du eine X und eine Y Koordinate eingeben. (Jeweils ganzzahlig) Dann wird sozusagen "Der Stift an die Position gesetzt" aber nich tnichts gezeichnet! Das zeichnen passiert dann mit LineTo() - benötigt wiederrum 2 Koordinaten und zeichnet dann eine Linie von der aktuellen Stiftpodition an die gegebene Position. Die Stiftposition wird dann auch verändert. |
Re: Delphi Einstieg HILFE!!!(Stern-Vieleck)
Zitat:
http://www.gk-informatik.de/eep/canvas.html http://www.hh.schule.de/hhs/delphi/G...it_Delphi1.pdf |
Re: Delphi Einstieg HILFE!!!(Stern-Vieleck)
Zitat:
|
Re: Delphi Einstieg HILFE!!!(Stern-Vieleck)
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 09:41 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz