Autor |
Beitrag |
gandalf ftw
Hält's aus hier
Beiträge: 14
|
Verfasst: Mo 29.10.07 18:11
Hi
Ich bräuchte Hilfe bei nem Algorithmus zum stauchen bzw strecken von einem rechteck.Ich hab leider kein plan und es wär cool wenn es jemand von euch hinbekommt.
thx schonma im vorraus
|
|
alzaimar
      
Beiträge: 2889
Erhaltene Danke: 13
W2000, XP
D6E, BDS2006A, DevExpress
|
Verfasst: Mo 29.10.07 18:20
Öhm, was ist das Problem? Ein Rechteck bleibt doch ein Rechteck, wenn es gestaucht oder gestreckt wird (ja ja, bis zum erreichen der Singularität bzw. Unendlichkeit)
_________________ Na denn, dann. Bis dann, denn.
|
|
Kroko
      
Beiträge: 1284
W98 W2k WXP
Turbo D
|
Verfasst: Mo 29.10.07 18:27
vielleicht so, wenn es parallel zum Bildschirm liegt,
Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19:
| TRechteck = record P: TPoint; Breite, Hoehe: Integer: end;
procedure Zeichne(const ACanvas: TCanvas; const R: TRechteck); begin with R do ACanvas.Rectangle(P.X,P.Y,P.X+Breite,P.Y-Hoehe); end;
procedure Skaliere(var R: TRechteck; const AFaktor: Double); begin with R do begin Breite := Round(Breite*AFaktor); Hoehe := Round(Hoehe*AFaktor); end; end; |
_________________ Die F1-Taste steht nicht unter Naturschutz und darf somit regelmäßig und oft benutzt werden! oder Wer lesen kann, ist klar im Vorteil!
Zuletzt bearbeitet von Kroko am Sa 10.11.07 17:59, insgesamt 2-mal bearbeitet
|
|
gandalf ftw 
Hält's aus hier
Beiträge: 14
|
Verfasst: Mo 29.10.07 19:17
naja das problem liegt darin das ich das selbe rechteck strecken und stauchen soll und ehrlich gesagt null plan hab wie ich das machen soll.
|
|
TheAxeEffect
      
Beiträge: 37
|
Verfasst: Mo 29.10.07 19:53
könntest du bitte deine frage klar formulieren:
willst du das rechteck GRAFISCH sichtbar machen, oder nur die seiten berechnen.
und könntest du uns deine der worte "stauchen" und "strecken" liefern. heißt das, dass der umfang erhalten bleibt, oder heißt es, dass die länge einer seite erhalten bleibt?
mfg,
simon
|
|
gandalf ftw 
Hält's aus hier
Beiträge: 14
|
Verfasst: Mo 29.10.07 21:58
also inder aufgabenstellung steht das ich das rechteck stauchen bzw strecken soll wobei der faktor egal is.also nehme ich mal an das die lange bzw die breite verändert werden.das rechteck soll sichtbar gemacht werden.ich habs selber nochma versucht aber ich bekomms nich hin
|
|
Kroko
      
Beiträge: 1284
W98 W2k WXP
Turbo D
|
Verfasst: Di 30.10.07 06:17
Und was gefällt Dir an meiner Skalieren-Prozedur nicht? Sie staucht bei AFaktor<1 und streckt bei AFaktor>1, 
_________________ Die F1-Taste steht nicht unter Naturschutz und darf somit regelmäßig und oft benutzt werden! oder Wer lesen kann, ist klar im Vorteil!
|
|
gandalf ftw 
Hält's aus hier
Beiträge: 14
|
Verfasst: Do 01.11.07 23:10
was heißt nich gefällt - ich suche nen kompletten algorithmus wenns geht damit ich ihn denn nachvollziehen kann.
|
|
delfiphan
      
Beiträge: 2684
Erhaltene Danke: 32
|
Verfasst: Do 01.11.07 23:47
Deine Frage ist nicht ausreichend genau gestellt.
|
|
Kroko
      
Beiträge: 1284
W98 W2k WXP
Turbo D
|
Verfasst: Fr 02.11.07 07:37
gandalf ftw hat folgendes geschrieben: | was heißt nich gefällt - ich suche nen kompletten algorithmus wenns geht damit ich ihn denn nachvollziehen kann. |
Sorry ich verstehe nur Bahnhof
_________________ Die F1-Taste steht nicht unter Naturschutz und darf somit regelmäßig und oft benutzt werden! oder Wer lesen kann, ist klar im Vorteil!
|
|
jasocul
      
Beiträge: 6393
Erhaltene Danke: 147
Windows 7 + Windows 10
Sydney Prof + CE
|
Verfasst: Fr 02.11.07 08:56
gandalf ftw hat folgendes geschrieben: | ich habs selber nochma versucht aber ich bekomms nich hin |
Zeige mal, was Du überhaupt hinbekommen hast.
gandalf ftw hat folgendes geschrieben: | also inder aufgabenstellung steht... |
gandalf ftw hat folgendes geschrieben: | ich suche nen kompletten algorithmus |
Ich bezweifle übrigens, dass hier Jemand Deine Aufgaben für Dich löst.
|
|
jaenicke
      
Beiträge: 19315
Erhaltene Danke: 1747
W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
|
Verfasst: Fr 02.11.07 10:49
gandalf ftw hat folgendes geschrieben: | was heißt nich gefällt - ich suche nen kompletten algorithmus wenns geht damit ich ihn denn nachvollziehen kann. |
Das Wort heißt glaube ich nicht nachvollziehen sondern abschreiben^^.
Nein, im Ernst:
Wie jasocul bereits geschrieben hat, wird hier keiner einfach eine komplette Lösung für deine Aufgabe hinschreiben.
Das ist in deinem Fall aber auch gar nicht möglich, weil man aus deinen "Äußerungen" rein gar nicht erkennen kann wie die Aufgabe eigentlich aussieht, d.h. was du eigentlich machen sollst...
Schließlich ist Krokos Antwort ja ein vollständiger Algorithmus, der genau das macht, was aus deinen Posts zu erkennen war. Das ist allerdings kein fertiges Programm zum Abpinseln und Abgeben ohne etwas selbst dafür zu tun. Und damit komme ich wieder auf den Anfang meines Posts zurück...
Ohne, dass du mal schreibst, was deine Versuche ergeben habe (als Quelltext), und weitere Informationen postest was du eigentlich genau machen sollst, wenn Krokos Vorschlag nicht das ist, was du meinst, kann niemand dir helfen.
|
|
gandalf ftw 
Hält's aus hier
Beiträge: 14
|
Verfasst: Fr 02.11.07 17:46
also ich habs jetzt gescahfft ein rechteck erstma zu programmieren mit penpos und lineto etc. nun versuche ich den streck bzw stauchfaktor in einem edit feld einzugeben um mein vorgezeichnetes rechteck zu stauchen.
|
|
jaenicke
      
Beiträge: 19315
Erhaltene Danke: 1747
W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
|
Verfasst: Fr 02.11.07 19:16
Kroko hat dir doch bereits eine Lösung gepostet... Es gibt schon einen Befehl um ein Rechteck zu zeichnen, und den hat er auch verwendet. Auch das Strecken und Stauchen hat er bereits fertig gepostet.
Also warum benutzt du nicht einfach die Lösung?
Denn Fragen hast du zu der Lösung ja offensichtlich nicht, denn wenn dir der Quelltext nicht klar wäre, dann hättest du ja sicher gefragt, was die Befehle, die du nicht verstehst, bedeuten etc.
|
|
gandalf ftw 
Hält's aus hier
Beiträge: 14
|
Verfasst: So 04.11.07 11:34
sowie ich das jetzt verstehe muss ich für breite und höhe jeweils x bzw nen y wert oben einsetzen oder bin ich da falsch
|
|
jaenicke
      
Beiträge: 19315
Erhaltene Danke: 1747
W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
|
Verfasst: So 04.11.07 11:55
Du machst eine Variable vom Typ TRechteck, weist dann die einzelnen Werte zu und kannst dann die Methoden Zeichne und Skaliere aufrufen. Wobei Skaliere dann eben als zweiten Parameter den Wert erwartet, um den gestaucht oder gestreckt werden soll. 2.0 zum Beispiel für doppelte Größe.
Und Zeichne erwartet auch noch den Parameter wohin es gezeichnet werden soll, zum Beispiel den Canvas deines Formulars.
So ungefähr würde das aussehen (nein, mehr schreibe ich da nicht hin, da versuch erstmal selbst was und poste, was du versucht hast): Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23:
| type TRechteck = record
TForm1 = class
implementation
procedure Zeichne(const ACanvas: TCanvas; const R: TRechteck); begin
procedure TForm1.Button1Click(Sender: TObject); var begin Variable.P.X := ;
Skaliere( , ); Zeichne( , ); end; | Statt TForm1.Button1Click kann da auch ein bisschen was anderes stehen, je nachdem wieviele Buttons du hast und wie dein Formular heißt.
Dass es dir vielleicht nicht ganz klar ist, wie man mit Records arbeitet, kann ich noch nachvollziehen, nicht allerdings, warum du das nicht nachliest.
Aber mit dem was ich gerade gepostet habe, musst du jetzt erstmal was machen. Mehr werde ich definitiv nicht schreiben ohne gepostete Versuche in Quelltextform von dir. Jetzt weißt du wo was hingehört (was ich bei einem Anfänger ja nicht gerade voraussetzen kann), und jetzt versuch damit erstmal was zu machen.
Wenn du dann Quelltext postest, wie du es versucht hast, dann können wir dir auch erklären, warum was so nicht geht.
Der Crashkurs von Christan hilft dir ja vielleicht auch.
|
|
gandalf ftw 
Hält's aus hier
Beiträge: 14
|
Verfasst: So 04.11.07 14:44
ich schick euch meinen quelltext morgen, da hab ich schon ein rechteck gezeichnet.habs schon inner schule gemacht und der quelltext is aufm schulrechner
|
|
gandalf ftw 
Hält's aus hier
Beiträge: 14
|
Verfasst: Mo 05.11.07 12:03
|
|
Kroko
      
Beiträge: 1284
W98 W2k WXP
Turbo D
|
Verfasst: Mo 05.11.07 12:24
gandalf ftw hat folgendes geschrieben: | procedure TForm1.FormCreate(Sender: TObject);
Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17:
| var X,Y:integer; P:TPoint; begin X:=100; Y:=100; P.x:=100; P.y:=200; with Image1.Canvas do begin penpos:=P; lineto(x,y); lineto(x+200,y); lineto(x+200,y+100); lineto(x,y+100); end;end;
end. | |
Sieht doch gleich viel besser aus, Code-Tags verwenden,
P kannst Du dir sparen, nimm statt PenPos einfach MoveTo(X,Y);
gandalf ftw hat folgendes geschrieben: | so habich mien rechteck gezeihnet. jetztmuss ich irgendwie ein edit feld einlesen lassen wo icheinenfaktor eingeben kann mit dem man das rechteck stauchen kann. |
Einfach ein TEdit aufs Formular und mit StringToFloat auswerten, und 200*ScaleFactor und die 100*ScaleFactor
gandalf ftw hat folgendes geschrieben: | geht das mit demwasihr mir geschrieben habt? |
Nein, deswegen habe ich es ja so gepostet
_________________ Die F1-Taste steht nicht unter Naturschutz und darf somit regelmäßig und oft benutzt werden! oder Wer lesen kann, ist klar im Vorteil!
|
|
gandalf ftw 
Hält's aus hier
Beiträge: 14
|
Verfasst: Mi 07.11.07 20:23
maht das nen unterschied ob ich das so wie du mache oder so wie ich?
so ich hab ma versucht das rechtekt durch nen faktor zu vergrößern bzw zu verkleinern - das problem is das der integer werte nicht mit extended werten auskommt und ob ihr da ne lösung für habt.
|
|