Entwickler-Ecke
Grafische Benutzeroberflächen (VCL & FireMonkey) - Sinuskurve klappt nicht!
maxet - Di 07.06.11 20:29
Titel: Sinuskurve klappt nicht!
Wenn ich die 'Einheit' vergrößere, verändert sich nichts.
hier der Quelltext, sorry fürs Format, ich weiß noch nich wo man den einfügt und dann richtig formatiert.
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13:
| procedure sinus; var i:integer; var y:real; begin Form2.Image1.Canvas.Pen.Color:=clblue; Form2.Image1.Canvas.Pen.Width:=3; with Form2.Image1.Canvas do begin for i:=-100000 to 100000 do begin Lineto(NullX+i,round(NullY-(sin(i)))); [i]edit: ich weiß die vielen Klammern[/i] :oops: end; end; end; |
Moderiert von
Narses: Delphi-Tags hinzugefügt
Moderiert von
Narses: Anhang konvertiert: DOC->PNG
edit: cool ist ja automatisch :D
jaenicke - Di 07.06.11 20:39
maxet hat folgendes geschrieben : |
Delphi-Quelltext 1: 2: 3:
| for i:=-100000 to 100000 do begin Lineto(NullX+i,round(NullY-(sin(i)))); | |
Meinst du wirklich, dass auf deinen Bildschirm 100000 Pixel passen? ;-)
Was du willst, ist ja wohl eher eine Skalierung. Und wie macht man etwas z.B. doppelt so groß? Richtig, mit einer Multiplikation. Zum Beispiel:
Delphi-Quelltext
1:
| Image1.Canvas.LineTo(NullX + i, Round(NullY - 2 * Sin(i))); |
Nebenbei:
Real sollte nie verwendet werden, nimm lieber z.B. Double.
HenryHux - Di 07.06.11 20:42
Du vergisst, dein Bild genausolang wie die Kurve zu ziehen.
Versuch mal das:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17:
| procedure sinus; var i : integer; y : Double; NullX, NullY : Integer; Max : Integer; begin Max := 420; Form1.Image1.Width := Max; NullX := Form1.Image1.Left; NullY := Form1.Image1.Top; Form1.Image1.Canvas.Pen.Color := clblue; Form1.Image1.Canvas.Pen.Width := 3; for i:= -1*Max to Max do begin Form1.Image1.Canvas.Lineto(NullX+i,round(NullY-(sin(i)))); end; end; |
lg
mandras - Di 07.06.11 21:30
Und da sin(x) nur Werte von -1 bis 1 liefert noch skalieren:
...
Delphi-Quelltext
1: 2: 3: 4: 5:
| for i:= -1*Max to Max do begin Form1.Image1.Canvas.Lineto(NullX+i,round (Skalierung*(NullY-(sin(i))))); end; end; |
der organist - Di 07.06.11 22:40
wie sieht es denn überhaupt aus?
jaenicke - Di 07.06.11 22:59
der organist hat folgendes geschrieben : |
wie sieht es denn überhaupt aus? |
Die angehängte Worddatei beinhaltet ein Bild. Wie man es halt so macht, wenn man ein Bild posten möchte, man packt es in Word... :autsch:
Narses - Mi 08.06.11 00:05
Moin und :welcome: im Forum!
maxet hat folgendes geschrieben : |
hier der Quelltext, sorry fürs Format, ich weiß noch nich wo man den einfügt und dann richtig formatiert. |
Du markierst den Quelltext im Editor und klickst auf das Plus-Zeichen neben der ComboBox "Delphi" oder du schreibst deinen Quelltext zwischen Delphi-Tags:
Quelltext
1:
| <span class="inlineSyntax"><span class="codecomment">{PROTECTTAG84722eb17d42ac9781950e3fc19e433b}</span></span> |
Daraus wird dann:
cu
Narses
maxet - Do 09.06.11 14:11
jaja ist klar, ich hab die Funktion mit a*sin(b*x+c) +d rausgenommen. Die Variablen a,b,c,d hab ich normalerweise in Edits aber daran liegts nicht!
Trotzdem danke :lol:
maxet - Do 09.06.11 14:22
HenryHux hat folgendes geschrieben : |
Du vergisst, dein Bild genausolang wie die Kurve zu ziehen.
Versuch mal das:
Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17:
| procedure sinus; var i : integer; y : Double; NullX, NullY : Integer; Max : Integer; begin Max := 420; Form1.Image1.Width := Max; NullX := Form1.Image1.Left; NullY := Form1.Image1.Top; Form1.Image1.Canvas.Pen.Color := clblue; Form1.Image1.Canvas.Pen.Width := 3; for i:= -1*Max to Max do begin Form1.Image1.Canvas.Lineto(NullX+i,round(NullY-(sin(i)))); end; end; |
lg |
der hat nen Bug!!!!! HHIILLFFEE, der rechte Teil vom Koordinatensystem vergrößert sich nicht mehr aargh! :?: :?: :?: :cry: :cry: :cry: :cry: :cry:
im Anhang der Screenshot, ich sitz grade an nem anderen PC :)
MDX - Do 09.06.11 15:07
Kannst du das Bild eventuell direkt hochladen, ohne es in eine Word-Datei einzufügen?
Martok - Do 09.06.11 15:37
MDX hat folgendes geschrieben : |
Kannst du das Bild eventuell direkt hochladen, ohne es in eine Word-Datei einzufügen? |
Das ist eine OpenDocument-Datei.
Habs trotzdem mal korrigiert. Ich frag mich ja immer noch, wie man auf solche Ideen kommt. Aber das ist ja seit Jahren ein ungelöstes Problem der DAU-Forschung...
MDX - Do 09.06.11 15:46
Martok hat folgendes geschrieben : |
Das ist eine OpenDocument-Datei. |
Ich hatte es mit gar nicht runtergeladen ;)
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!