AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Multimedia Delphi Zykloide zeichnen lassen
Thema durchsuchen
Ansicht
Themen-Optionen

Zykloide zeichnen lassen

Ein Thema von frankstar · begonnen am 18. Jun 2004 · letzter Beitrag vom 20. Jun 2004
Antwort Antwort
frankstar

Registriert seit: 25. Jan 2003
Ort: Dresden
5 Beiträge
 
#1

Zykloide zeichnen lassen

  Alt 18. Jun 2004, 16:14
Hi,
ich hab an der Uni eine Belegarbeit zu erledige, und nun presierts mir langsam ein wenig.
Wir sollen die Zykloide eines Kreises zeichnen lassen.

Nun hab ich das Problem, dass ich den Kreis schonmal bewegt bekomme, habs per repeat versucht und per timer, aber das hat irgendwie nicht so alles hingehauen.
Könnt ihr mir ein paar tipps geben, wie ich den Kreis am besten "Rollen" lasse?
Das wärschon mal riesig, danke euch,grüße Frank
Angehängte Grafiken
Dateityp: bmp bild_150.bmp (175,2 KB, 77x aufgerufen)
...es ist grad halb Acht und es sind Acht'n halb Grad....
  Mit Zitat antworten Zitat
Benutzerbild von Nikolas
Nikolas

Registriert seit: 28. Jul 2003
1.528 Beiträge
 
Delphi 2005 Personal
 
#2

Re: Zykloide zeichnen lassen

  Alt 18. Jun 2004, 17:20
Nimm die doch ein Image und zeichne ins linke Ende den Kreis, dann warte 50ms, lösche das ganze Bild und zeichne den Kreis 5 Pixel nach rechts versetzt. Den PeripheriePunkt kannst du dann mit einer Farbe anmalen, damit sichtbar ist das der Kreis rollt und nicht einfach verschoben wird. Für den PeripheriePunkt kannst du ja vom Kreismittelpunkt ausgehend mit sin und cos einzeichnen.

Wenn's zu stark flackert kannst du mal probieren den alten Kreis zu übermalen und nicht das ganze Bild neu zu färben. [untested]

TOX
Erwarte das Beste und bereite dich auf das Schlimmste vor.
  Mit Zitat antworten Zitat
Benutzerbild von Ultimator
Ultimator

Registriert seit: 17. Feb 2004
Ort: Coburg
1.860 Beiträge
 
FreePascal / Lazarus
 
#3

Re: Zykloide zeichnen lassen

  Alt 18. Jun 2004, 17:25
Wenns zu stakr flackert, nimm einfach DoubleBuffered:=true
Julian J. Pracht
  Mit Zitat antworten Zitat
neolithos

Registriert seit: 31. Jul 2003
Ort: Dresden
1.386 Beiträge
 
Delphi 7 Architect
 
#4

Re: Zykloide zeichnen lassen

  Alt 18. Jun 2004, 18:13
Zitat von Ultimator:
Wenns zu stakr flackert, nimm einfach DoubleBuffered:=true
Immer mit den Holzhammer drauf! (Speicherverschwender)

Überzeichne einfach das alte Bild indem du es nochmal mit Pen = Weiß malst!
Errechne die neue Position!


Wichtig dabei ist!

Die Daten zur Bilddarstellung müssen, auch in Paint gezeichnet werden.


Die Schleife sollte keine Schleife sein, sondern ein Timer-Ereignis!
Es muss eine Procedure geben die den Kreis zeichnet (Parameter: Position, Raduis des Arc, Farbe)
Die Farbe dient zum Löschen.

Weiterhin Variablen im Private-Bereich:
- Position des Kreises (integer, da y fest steht)
- Radius der Arc (Single)


Was muss im Timer Ereignis gemacht werden

1. Überzeichne den Alten mit Weiß
2. Weitersetzen des Kreises
3. Berechnung des neuen Winkels
4. Zeichne den neuen Halb-Kreis

Paint, zeichnet nur den Aktuellen Zustand!


Grüße von der HTW-DD

Warum muss ich immer, als "dummer" HTW-Ler den TU-Lern Helfen!
- ciao neo -
Es gibt niemals dumme Fragen, sondern nur dumme Antworten!
  Mit Zitat antworten Zitat
Benutzerbild von Jens Schumann
Jens Schumann

Registriert seit: 27. Apr 2003
Ort: Bad Honnef
1.644 Beiträge
 
Delphi 2009 Professional
 
#5

Re: Zykloide zeichnen lassen

  Alt 18. Jun 2004, 19:21
Hallo,
ich halte die vorherigen Vorschläge nicht für zielführend.

- Alles in weiß zeichen geht evt. bei kleinen Grafiken. Wenn es sich aber um komplexe
Grafiken handelt fängt es auch an zu flackern.

- DoubleBuffered bezieht sich auf das Formular. D.h. es wird im Hintergrund auf eine Bitmap
gezeichnet und wenn alles gemalt wurde auf die Canvas des Forumlars kopiert (geht schnell).

Das DoubleBuffered Prinzip ist aber gar nicht so schlecht. Wenn Du Deine Grafikausgabe in eine
TPaintBox machst, reicht es doch diese zu "DoubleBuffern"
D.h. zeichne zuerst alles auf eine Bimap, die genau so groß ist wie die Paintbox.
Wenn alles gezeichnet wurde kopierst Du die Bitmap mit der API-Funktion BitBlt auf die
Canvas der TPaintBox. Das geht schnell und flackert nicht. Flackert auch nicht bei komplexeren Grafiken.
I come from outer space to save the human race
  Mit Zitat antworten Zitat
frankstar

Registriert seit: 25. Jan 2003
Ort: Dresden
5 Beiträge
 
#6

Re: Zykloide zeichnen lassen

  Alt 20. Jun 2004, 18:35
Zitat von neolithos:

Warum muss ich immer, als "dummer" HTW-Ler den TU-Lern Helfen!
Hrhr, sach ich da mal =)

Aber ich danke euch auf jeden Fall recht herzlichst.... Bisl gehts schon, noch paar kleine Details, aber so passt das schon für ne Unterschrift

Grüße Frank
...es ist grad halb Acht und es sind Acht'n halb Grad....
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 19:35 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