Entwickler-Ecke
Grafische Benutzeroberflächen (VCL & FireMonkey) - Viereck mit Canvas im Kreis drehen...?
killercode - Di 01.03.05 20:35
Titel: Viereck mit Canvas im Kreis drehen...?
Hallo!
Ich versuch schon seit Ewigkeiten eine Figur (zb. Ein Strich oder ein Viereck) auf der Canvas rotieren zu lassen.
Sozusagen ein "bewegtes Bild".
Es soll sich "nur" im Kreis drehen als nix spektakuläres...
aber leider bekomm ich das nicht allein hin... :cry:
Bitte helft mir schnell!!!
Danke...
killercode - Di 01.03.05 22:05
Ehm...naja...danke trotzdem,
nur leider hätte ich das Problem gern etwas einfacher. ^^
So in ein paar Zeilen Quellcode weil sonst denkt der Lehrer ich habs geklaut und das soller ja nich merken... :-D
Wir solln das in ne anfangs oder engeprüfte Schleife einbinden.
Achja...das Teil geht nich zu kompilieren weil die KOL.dcu fehlt...
no mather...
ciao & thx
hoffe das mir noch jemand helfen kann...
retnyg - Di 01.03.05 22:12
wenn du das so direkt compilen willst musst du noch kol.pas von
http://bonanzas.rinet.ru saugen
die für die rotation zuständigen codezeilen funktionieren jedoch auch in deinem delphi (also rauskopieren und damit rumspielen)
delfiphan - Di 01.03.05 22:14
Ist das Drehen das Problem oder die Bewegung?
Punkt (x1,x2) um den Ursprung drehen:
Delphi-Quelltext
1: 2: 3:
| a := 10*pi/180; x1 := cos(a)*x1-sin(a)*x2; x2 := sin(a)*x1+cos(a)*x2; |
killercode - Di 01.03.05 22:34
Naja ich mag so sachen mit der Paintbox einfach nich. :roll: :lol:
Aber trotzdem danke...bin bei diesem Mathekram was Flächen anbelangt nich so intressiert gewesen.
Mal probiern obs jetzt geht.
ciao&thx
bin trotzdem für andere Lösungsansätze offen! *g
[EDIT]
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18:
| procedure TForm1.Button2Click(Sender: TObject); var i,x1,x2:Integer; a:Extended;
begin x1:=1; x2:=1; i:=1; pic.canvas.moveto(10,10); Repeat Refresh; pic.canvas.lineto(x1,x2); a := 10*pi/180; x1 := trunc(cos(a)*x1-sin(a)*x2); x2 := trunc(sin(a)*x1+cos(a)*x2); i:=i+10; Until i=100; end; |
So in etwa sollte es aussehen und funktionieren...das tut mein oben genannter Quellcode aber nicht! :lol:
Ist nur mal n Beispiel damit ihr wisst wie ichs ungefähr gern hätte...
Naja...das einzige was das Proggi bringt: 100% CPU-Auslastung! :-D
Es zeichnet aber überhauptgarnix???? das ist komisch.
PLZ HLP!!!
Bin verzweifelt :cry:
JayEff - So 09.10.05 16:42
Delphi-Quelltext
1:
| Application.ProcessMessages |
Schreibs in deine Schleife. und mach keine repeat until schleife, sondern eine for do.
Delphi-Quelltext
1: 2: 3: 4: 5: 6:
| for i:=0 to 10 do begin memo1.lines.add(IntToStr(i); application.processMessages; sleep(100); end; |
Das schreibt dir alle zehntel sekunde eine zahl ins memo und zwar 1 2 3 4 5 6 7 8 9 10. Ohne processMessages würde er erst alle zahlen reinschreiben, und DANN anzeigen. da ist bei dir wahrscheinlich auch der Fehler...
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2026 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!