AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Projekte Ellipsen die sich um ihren Mittelpunkt drehen mit Delphi
Thema durchsuchen
Ansicht
Themen-Optionen

Ellipsen die sich um ihren Mittelpunkt drehen mit Delphi

Ein Thema von TOC · begonnen am 28. Feb 2005 · letzter Beitrag vom 15. Jul 2005
Antwort Antwort
Benutzerbild von TOC
TOC
Registriert seit: 5. Jan 2005
Hi!

Ich wollte mal so´n Programm schreiben mit ´ner Ellipse die sich um ihren Mittelpunkt dreht. Aber leider habe ich weder in Delphi noch in Windows eine entsprechende Funktion gefunden. Bei dem Versuch eine solche Ellipse zu zeichnen bin ich halb wahnsinnig geworden! Ich bekam alle möglichen Ergebnisse, aber keine Ellipse. Dann ist mir der Kragen geplatzt und ich habe das Netz nach einer entsprechenden Funktion abgesucht, und diese zum Glück auch gefunden! Es war nicht sehr schwer diesen Algorythmus in Delphi zu übersetzen.

Achtung : Wenn ihr dieses Projekt ladet wird die Eigenschaft 'AutoScroll' von Form1 dummerweise immer wieder auf 'False' gesetzt. Ich habe keine Ahnung woran dies liegt. Ihr müßt 'AutoScroll' auf 'True' setzen bevor ihr das Programm startet oder abspeichert, da sonst die Größe vom BitMap nicht an die Formular-Größe angepaßt wird!

http://img238.exs.cx/img238/271/atomklein9hv.gif

Dieses Atom-Programm spielt ein wenig mit drehenden Ellipsen herum. Wenn ihr solche gedrehten Ellipsen
in Euren Programmen verwenden wollt dann bindet einfach die Unit 'Ellipse' in Euer Programm ein!

------------------------------------------------------------------------------------------------

Hi!

Hier kommt Version 1.2 von Atom!

Änderungen:

1.) Das Atom-Programm speichert nun unter dem Schlüssel 'HKEY_CURRENT_USER\SoftWare\TocWare\Atom" seine Daten in der System-Registrierung.

2.) Der Dateityp "*.qex" = Atomparameter-Datei wird nun nicht mehr automatisch registriert. Wenn Du diesen Dateityp registrieren möchtest dann öffne mit der rechten Maustaste das Context-Menü und wähle "Dateityp *.qex registrieren". Dort findest Du nun auch eine Funktion mit der Du alle Daten, die Atom in unter dem Schlüssel 'HKEY_CURRENT_USER\SoftWare\TocWare\Atom' in die Registrierung schreibt, wieder löschen kannst ("Registrierung aufheben").

3.) In den Delphi 3 und Delphi 7 Versionen habe ich die Unit 'Ellipse.pas' etwas erweitert. Dort findest Du nun zwei neue Funktionen, um einen fließenden Farbverlauf zu berechnen und um eine gedrehte Ellipse mit Farbverlauf zu zeichnen.

4.) In der Delphi 7 Version von Ellipse.pas gibt es nun eine neue Funktion mit der Du auch Teilellipsen (Arcs) einer gedrehten Ellipse zeichnen kannst (von Phantom1@Delphipraxis.net).

Hinweis: Dieses Programm verwendet einige meiner selbst gebastelten Komponenten, die Du benötigst um das Projekt zu öffnen und neu zu kompilieren. Eine aktuelle Version meiner Komponenten im Packet findest Du hier : Tocs Komponenten als Paket

Grüße von TOC!
Angehängte Dateien
Dateityp: zip atom_f_r_delphi_7_191.zip (621,4 KB, 47x aufgerufen)
Dateityp: zip atom_f_r_delphi_3_611.zip (552,1 KB, 13x aufgerufen)
"Wäre die Erde eine Bank, ihr hättet sie längst gerettet!"
(Zitat GreenPeace)
 
Benutzerbild von Rastaman
Rastaman

 
Turbo C++
 
#2
  Alt 28. Feb 2005, 13:09
Keine der Dateien lässt sich öffnen (Windrar 3.4)
  Mit Zitat antworten Zitat
killerkarl

 
Delphi 7 Personal
 
#3
  Alt 28. Feb 2005, 13:31
Vllt. datei umbenennen, hat bei mir geholfen, da im Dateinamen ein Kasten war
  Mit Zitat antworten Zitat
Phantom1

 
Delphi 10.4 Sydney
 
#4
  Alt 28. Feb 2005, 20:30
Nicht schlecht, das hätt ich vor einigen Monaten gebrauchen können. Eine Sache fehlt jedoch oder ich hab's bei dir übersehen und zwar: ARC's bzw Teilellipsen.

Hab mich damals auch damit beschäftigt und habe schließlich diese Procedure geschrieben:

Delphi-Quellcode:
Procedure DrawEllipse(Dest: TCanvas; xCenter, yCenter, // Mittelpunkt
                                     xRadius, yRadius: Single; // breite, höhe
                                     sAngle: Single = 0; // StartWinkel
                                     eAngle: Single = 360; // EndWinkel
                                     RotateAngle: Single = 0; // DrehWinkel
                                     Points: Byte = 50); // Anzahl der Punkte
Var
  rAngle, step: Single;
  x1, y1: Integer;

  Procedure GetPos(Angle: Single; Out x1, y1: Integer);
  Var x, y, Theta: Single;
  Begin
    Theta:=Angle*(PI/180);
    x:=xRadius*cos(-Theta);
    y:=yRadius*sin(-Theta);
    x1:=Round(xCenter+x*Cos(-rAngle)-y*Sin(-rAngle));
    y1:=Round(yCenter+x*Sin(-rAngle)+y*Cos(-rAngle));
  End;

begin
  rAngle:=RotateAngle*(PI/180);
  step:=(eAngle-sAngle)/Points;
  GetPos(sAngle,x1,y1);
  Dest.MoveTo(x1,y1);
  sAngle:=sAngle+step;
  While sAngle<eAngle Do Begin
    GetPos(sAngle,x1,y1);
    Dest.LineTo(x1,y1);
    sAngle:=sAngle+step;
  End;
  GetPos(eAngle,x1,y1);
  Dest.LineTo(x1,y1);
End;
  Mit Zitat antworten Zitat
Benutzerbild von TOC
TOC

 
Delphi 7 Personal
 
#5
  Alt 1. Mär 2005, 12:47
Hi!

Zitat von Gerrit89:
Keine der Dateien lässt sich öffnen (Windrar 3.4)
Versteh nit warum! Ich hab grad mal beide Archieve runtergeladen und getestet- Kein Fehler!

Teileelipsen berechnen? Nun, in der unit Ellipse befinden sich noch zwei Funktionen, mit denen man einen Punkt auf ´ner gedrehten Ellipse berechnen kann oder einen Punkt auf´m Kreis.

Also gut, laß mir was einfallen für Teilellipsen...

Grüße von TOC!
Lars Uwe Hohmann
  Mit Zitat antworten Zitat
Phantom1

 
Delphi 10.4 Sydney
 
#6
  Alt 1. Mär 2005, 14:47
Zitat von TOC:
Hi!

Zitat von Gerrit89:
Keine der Dateien lässt sich öffnen (Windrar 3.4)
Versteh nit warum! Ich hab grad mal beide Archieve runtergeladen und getestet- Kein Fehler!
Ich kann deine RAR Archieve ohne probleme öffnen mit WinRar 3.2

Zitat von TOC:
Teileelipsen berechnen? Nun, in der unit Ellipse befinden sich noch zwei Funktionen, mit denen man einen Punkt auf ´ner gedrehten Ellipse berechnen kann oder einen Punkt auf´m Kreis.

Also gut, laß mir was einfallen für Teilellipsen...
Die Procedure die ich gepostet habe kann übrigens auch Teilellipsen darstellen, man muss nur den StartWinkel und den Endwinkel angeben. Gezeichnet wird dabei im Uhrzeigersinn.

mfg
  Mit Zitat antworten Zitat
Benutzerbild von TOC
TOC

 
Delphi 7 Personal
 
#7
  Alt 2. Mär 2005, 14:36
Hi!

Zitat von Phantom1:
Die Procedure die ich gepostet habe kann übrigens auch Teilellipsen darstellen, man muss nur den StartWinkel und den Endwinkel angeben. Gezeichnet wird dabei im Uhrzeigersinn.
mfg
Cool! Soll ich Deinen Code mal in die Unit 'Ellipse.pas' aufnehmen, oder is´ses Dir lieber wenn ich selbst so´ne Funktion programmiere?

Grüße von TOC!
Lars Uwe Hohmann
  Mit Zitat antworten Zitat
Phantom1

 
Delphi 10.4 Sydney
 
#8
  Alt 2. Mär 2005, 14:59
Zitat von TOC:
Cool! Soll ich Deinen Code mal in die Unit 'Ellipse.pas' aufnehmen, oder is´ses Dir lieber wenn ich selbst so´ne Funktion programmiere?
Du kannst gerne meinen Code nehmen, ich hab nix dagegen.

mfg
Phantom1
  Mit Zitat antworten Zitat
Benutzerbild von TOC
TOC

 
Delphi 7 Personal
 
#9
  Alt 7. Mär 2005, 11:02
Hi!

Zitat von Phantom1:
Zitat von TOC:
Cool! Soll ich Deinen Code mal in die Unit 'Ellipse.pas' aufnehmen, oder is´ses Dir lieber wenn ich selbst so´ne Funktion programmiere?
Du kannst gerne meinen Code nehmen, ich hab nix dagegen.

mfg
Phantom1
Ah, danke. Dann bastel ich Deinen Code mal in dei nächste Version hinein. Hab auch noch weitergebastelt und ´ne Funktion für Ellipsen mit Farbverlauf geschrieben.
Dann mach ich die nächsten Tage mal ein Upload mit der erweiterten 'Ellipse.pas'.

Grüße von TOC!
Lars Uwe Hohmann
  Mit Zitat antworten Zitat
Benutzerbild von TOC
TOC

 
Delphi 7 Personal
 
#10
  Alt 15. Jul 2005, 10:10
Hi!

Hier das versprochene UpDate mit der erweiterten Ellipse.pas sowie eine Korektur der fehlerhaften Registrierung (Inklusive Löschfunktion!).

Grüße von TOC !
Lars Uwe Hohmann
  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 20:53 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