Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Multimedia (https://www.delphipraxis.net/16-multimedia/)
-   -   Delphi Einstieg HILFE!!!(Stern-Vieleck) (https://www.delphipraxis.net/142259-delphi-einstieg-hilfe-stern-vieleck.html)

maxrus 24. Okt 2009 20:10


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:

Luckie 24. Okt 2009 20:17

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.

DeddyH 24. Okt 2009 20:18

Re: Hilfe!!! Stern-vieleck
 
Genau, hast Du die unter "Vorbereitung" beschriebenen Punkte bereits abgearbeitet? Da stehen doch bereits entscheidende Hinweise drin.

maxrus 24. Okt 2009 20:23

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

DeddyH 24. Okt 2009 20:25

Re: Hilfe!!! Stern-vieleck
 
Zitat:

Zitat von Luckie
Desweiteren wäre es schön, wenn du uns zeigst, was du schon bisher versucht hast.


Luckie 24. Okt 2009 20:27

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 Delphi-Referenz durchsuchenLineTo und Delphi-Referenz durchsuchenMoveTo. Hinzukommen wahrscheinlich noch die [/oh]Winkelfunktionen[oh]. Das war es schon.

maxrus 24. Okt 2009 20:31

Re: Hilfe!!! Stern-vieleck
 
Zitat:

Zitat von DeddyH
Zitat:

Zitat von Luckie
Desweiteren wäre es schön, wenn du uns zeigst, was du schon bisher versucht hast.


was soll man da mathematisch machen??? keine winkeln gar nichts gegeben, also so wie ich die Aufgabe verstanden hab, muss ich in ein edit feld Sternzahl schreiben auf Button drücken und delphi soll es zeichnen???oder

jfheins 24. Okt 2009 20:32

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:
function PolarToPixel(r, phi: Double) : TPoint
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.

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 ;)

maxrus 24. Okt 2009 20:33

Re: Hilfe!!! Stern-vieleck
 
Zitat:

Zitat von Luckie
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 Delphi-Referenz durchsuchenLineTo und Delphi-Referenz durchsuchenMoveTo. Hinzukommen wahrscheinlich noch die [/oh]Winkelfunktionen[oh]. Das war es schon.


löl ich weiß nicht mal was Lineto und MoveTo ist :(

Luckie 24. Okt 2009 20:34

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:

löl ich weiß nicht mal was Lineto und MoveTo ist
Deswegen habe ich die Funktionen ja auch verlinkt.

DeddyH 24. Okt 2009 20:35

Re: Hilfe!!! Stern-vieleck
 
Dann klick doch einfach mal auf die Links, dafür hat Luckie die ja angelegt.

maxrus 24. Okt 2009 20:38

Re: Hilfe!!! Stern-vieleck
 
Zitat:

Zitat von Luckie
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:

löl ich weiß nicht mal was Lineto und MoveTo ist
Deswegen habe ich die Funktionen ja auch verlinkt.


ich könnte nur dazu sagen 360°/Sternezahl


PS: wie soll ich mein titel umändern???

maxrus 24. Okt 2009 20:40

Re: Hilfe!!! Stern-vieleck
 
Zitat:

Zitat von DeddyH
Dann klick doch einfach mal auf die Links, dafür hat Luckie die ja angelegt.


das hab ich schon davor gemacht war nichts zu sehen da,keine erklärung

mkinzler 24. Okt 2009 20:41

Re: Hilfe!!! Stern-vieleck
 
Zitat:

wie soll ich mein titel umändern???
Durch bearbeiten des 1. Beitrages

jfheins 24. Okt 2009 20:42

Re: Hilfe!!! Stern-vieleck
 
Zitat:

Zitat von maxrus
ich könnte nur dazu sagen 360°/Sternezahl?

Fast richtig ;)
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.

Luckie 24. Okt 2009 20:44

Re: Hilfe!!! Stern-vieleck
 
Zitat:

Zitat von maxrus
Zitat:

Zitat von DeddyH
Dann klick doch einfach mal auf die Links, dafür hat Luckie die ja angelegt.


das hab ich schon davor gemacht war nichts zu sehen da,keine erklärung

Die Links auf der Seite, auf der du landest, hast du aber schon gesehen oder?

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. ;)

maxrus 24. Okt 2009 20:46

Re: Hilfe!!! Stern-vieleck
 
Zitat:

Zitat von jfheins
Zitat:

Zitat von maxrus
ich könnte nur dazu sagen 360°/Sternezahl?

Fast richtig ;)
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.

mit Polarkoordinaten kenne ich mich gut aus ,aber wie ich bei delphi anwenden soll keine ahnung

Luckie 24. Okt 2009 20:48

Re: Hilfe!!! Stern-vieleck
 
Zitat:

Zitat von maxrus
aber wie ich bei delphi anwenden soll keine ahnung

Was meinst du, warum wir dir hier alles mögliche verlinken?

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.

jfheins 24. Okt 2009 20:54

Re: Hilfe!!! Stern-vieleck
 
Ich will mal so nett sein. Läuft eh nix im TV :?

Delphi-Quellcode:
procedure DrawLine(img: TImage; From, To: TPoint)
begin
img.Canvas.MoveTo(From.X, From.Y);
img.Canvas.LineTo(To.X, To.Y);
end;
Zeichnet eine Linie von einem Punkt zu einem anderen Punkt ;)

maxrus 25. Okt 2009 10:23

Re: Hilfe!!! Stern-vieleck
 
Zitat:

Zitat von jfheins
Ich will mal so nett sein. Läuft eh nix im TV :?

Delphi-Quellcode:
procedure DrawLine(img: TImage; From, To: TPoint)
begin
img.Canvas.MoveTo(From.X, From.Y);
img.Canvas.LineTo(To.X, To.Y);
end;
Zeichnet eine Linie von einem Punkt zu einem anderen Punkt ;)


Danke,hab ausprobiert ging aber nicht.ich muss doch bestimmt davor was vordefenieren , vor begin oder?

jfheins 25. Okt 2009 10:56

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 ;)

maxrus 25. Okt 2009 11:23

Re: Delphi Einstieg HILFE!!!(Stern-Vieleck)
 
Liste der Anhänge anzeigen (Anzahl: 1)
Zitat:

Zitat von jfheins
"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 ;)


ich hab da ma versucht eine linie vom mittelpunkt zu zeichnen aber :siehe bild Fehler

fkerber 25. Okt 2009 11:25

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

maxrus 25. Okt 2009 11:33

Re: Delphi Einstieg HILFE!!!(Stern-Vieleck)
 
Zitat:

Zitat von fkerber
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


Delphi-Quellcode:
procedure TForm1.Image1Click(Sender: TObject);
begin
with image1.canvas do
image1.Canvas.MoveTo(0,70);
image1.Canvas.LineTo(0,70);
end;

end.
Jetzt sagt er mir:[Fataler Fehler] Ausgabedatei 'C:\Program Files\Borland\Delphi6\Projects\Project1.exe' kann nicht erstellt werden

[edit=mkinzler]Delphi-Tag eingefügt Mfg, mkinzler[/edit]

fkerber 25. Okt 2009 11:35

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 25. Okt 2009 11:37

DP-Maintenance
 
Dieses Thema wurde von "mkinzler" von "Programmieren allgemein" nach "Multimedia" verschoben.

maxrus 25. Okt 2009 11:39

Re: Delphi Einstieg HILFE!!!(Stern-Vieleck)
 
Zitat:

Zitat von maxrus
Zitat:

Zitat von fkerber
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


Delphi-Quellcode:
procedure TForm1.Image1Click(Sender: TObject);
begin
with image1.canvas do
image1.Canvas.MoveTo(0,70);
image1.Canvas.LineTo(0,70);
end;

end.
Jetzt sagt er mir:[Fataler Fehler] Ausgabedatei 'C:\Program Files\Borland\Delphi6\Projects\Project1.exe' kann nicht erstellt werden

[edit=mkinzler]Delphi-Tag eingefügt Mfg, mkinzler[/edit]

ich glaub ich weiß wo das problem lag,mein image feld war falsch plaziert,der könnte gar nicht zeichnen, jetzt hab ich imagefeld nach oben links in (0/0) gebracht ,zeigt mir aber trotzdem nur weißes rechteck?!?

DeddyH 25. Okt 2009 11:42

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:
procedure TForm1.Image1Click(Sender: TObject);
begin
  image1.Canvas.MoveTo(0,70);
  image1.Canvas.LineTo(0,70);
end;
[edit] Und MoveTo und LineTo sollten ja auch unterschiedliche Koordinaten aufweisen, sonst kann ja keine Linie dabei herauskommen. [/edit]

mkinzler 25. Okt 2009 11:42

Re: Delphi Einstieg HILFE!!!(Stern-Vieleck)
 
Zitat:

Jetzt sagt er mir:[Fataler Fehler] Ausgabedatei 'C:\Program Files\Borland\Delphi6\Projects\Project1.exe' kann nicht erstellt werden
Dann läuft die Exe noch.
Zitat:

ich glaub ich weiß wo das problem lag,mein image feld war falsch plaziert,der könnte gar nicht zeichnen, jetzt hab ich imagefeld nach oben links in (0/0) gebracht ,zeigt mir aber trotzdem nur weißes rechteck?!?
Zeichenoperationen sollte man nur in der Paint-Methode durchführen, da nur dann auf Verschiebeung/Überdeckung suw. reagiert wird

fkerber 25. Okt 2009 11:43

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

maxrus 25. Okt 2009 12:08

Re: Delphi Einstieg HILFE!!!(Stern-Vieleck)
 
Zitat:

Zitat von DeddyH
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:
procedure TForm1.Image1Click(Sender: TObject);
begin
  image1.Canvas.MoveTo(0,70);
  image1.Canvas.LineTo(0,70);
end;
[edit] Und MoveTo und LineTo sollten ja auch unterschiedliche Koordinaten aufweisen, sonst kann ja keine Linie dabei herauskommen. [/edit]


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???

DeddyH 25. Okt 2009 12:09

Re: Delphi Einstieg HILFE!!!(Stern-Vieleck)
 
Noch einmal: versuch mal Folgendes
Delphi-Quellcode:
procedure TForm1.Image1Click(Sender: TObject);
begin
  image1.Canvas.MoveTo(0,0);
  image1.Canvas.LineTo(0,70);
end;
Hier sind beide Koordinaten unterschiedlich, es sollte also eine Linie gezogen werden.

maxrus 25. Okt 2009 12:20

Re: Delphi Einstieg HILFE!!!(Stern-Vieleck)
 
Zitat:

Zitat von DeddyH
Noch einmal: versuch mal Folgendes
Delphi-Quellcode:
procedure TForm1.Image1Click(Sender: TObject);
begin
  image1.Canvas.MoveTo(0,0);
  image1.Canvas.LineTo(0,70);
end;
Hier sind beide Koordinaten unterschiedlich, es sollte also eine Linie gezogen werden.


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???

mkinzler 25. Okt 2009 12:22

Re: Delphi Einstieg HILFE!!!(Stern-Vieleck)
 
MoveTo() poitioniert den Stift bei einer Koordinate, MoveTo() zieht eine Linie dorthin!

DeddyH 25. Okt 2009 12:23

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]

jfheins 25. Okt 2009 12:25

Re: Delphi Einstieg HILFE!!!(Stern-Vieleck)
 
Zitat:

Zitat von mkinzler
MoveTo() poitioniert den Stift bei einer Koordinate, MoveTo() zieht eine Linie dorthin!

Nja, nicht ganz aber fast :P

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.

mkinzler 25. Okt 2009 12:28

Re: Delphi Einstieg HILFE!!!(Stern-Vieleck)
 
Zitat:

und noch etwas wollte ich fragen wie zeichne ich ein kreis mit einem radius von 75 mm???
http://www.hsg-kl.de/faecher/inf/del...haus/index.php
http://www.gk-informatik.de/eep/canvas.html
http://www.hh.schule.de/hhs/delphi/G...it_Delphi1.pdf

maxrus 25. Okt 2009 12:38

Re: Delphi Einstieg HILFE!!!(Stern-Vieleck)
 
Zitat:

Zitat von jfheins
Zitat:

Zitat von mkinzler
MoveTo() poitioniert den Stift bei einer Koordinate, MoveTo() zieht eine Linie dorthin!

Nja, nicht ganz aber fast :P

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.

okay danke

Luckie 25. Okt 2009 13:10

Re: Delphi Einstieg HILFE!!!(Stern-Vieleck)
 
Zitat:

Zitat von maxrus
Zitat:

Zitat von DeddyH
Noch einmal: versuch mal Folgendes
Delphi-Quellcode:
procedure TForm1.Image1Click(Sender: TObject);
begin
  image1.Canvas.MoveTo(0,0);
  image1.Canvas.LineTo(0,70);
end;
Hier sind beide Koordinaten unterschiedlich, es sollte also eine Linie gezogen werden.


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

Dann spiel doch einfach mal etwas mit den Werten und guck, was passiert.


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