AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Multimedia Delphi Kreis in Vier teile einteilen ?
Thema durchsuchen
Ansicht
Themen-Optionen

Kreis in Vier teile einteilen ?

Ein Thema von mimi · begonnen am 10. Jun 2007 · letzter Beitrag vom 1. Mai 2012
 
mimi

Registriert seit: 1. Dez 2002
Ort: Oldenburg(Oldenburg)
2.008 Beiträge
 
FreePascal / Lazarus
 
#11

Re: Kreis in Vier teile einteilen ?

  Alt 11. Jun 2007, 10:48
ICH HABE ES.

ich habe den code einfach etwas geändert:
Delphi-Quellcode:
procedure Kreis4Farben(cav: TCanvas; iLeft, iTop, DMesser: integer);
var
  PTemp: TPoint;
  Halb, Viertel, DreiV: integer;
begin
  Halb := DMesser div 2;
  Viertel := Halb div 2;
  DreiV := Halb + Viertel;
  with cav do
  begin
  // GetViewportOrgEx(Handle, PTemp);
   // SetViewportOrgEx(Handle, iLeft, iTop, nil);
    Pen.Color:= clRed;
    Arc(0, 0, DMesser, DMesser, DMesser, Halb, Halb, 0);
// MoveTo(DMesser, Halb);
  // LineTo(Halb, Halb);
// MoveTo(Halb, Halb);
  // LineTo(Halb, 0);
    Brush.Color := clRed;
  // FloodFill(DreiV, Viertel, clred, fsBorder);

    Pen.Color:= clYellow;
    Arc(0, 0, DMesser, DMesser, Halb, 0, 0, Halb);
  // MoveTo(0, Halb);
// LineTo(Halb, Halb);
// MoveTo(Halb, Halb);
// LineTo(Halb, 0);
    Brush.Color := clYellow;
 // FloodFill(Viertel, Viertel, clYellow, fsBorder);

    Pen.Color := clGreen;
    Arc(0, 0, DMesser, DMesser, 0, Halb, Halb, DMesser);
    //MoveTo(0, Halb);
// LineTo(Halb, Halb);
  // MoveTo(Halb, Halb);
// LineTo(Halb, DMesser);
    Brush.Color := clGreen;
 // FloodFill(Viertel, DreiV, clGreen, fsBorder);

    Pen.Color := clAqua;
    Arc(0, 0, DMesser, DMesser, Halb, DMesser, DMesser, Halb);
  // MoveTo(DMesser, Halb);
// LineTo(Halb, Halb);
// MoveTo(Halb, Halb);
  // LineTo(Halb, DMesser);
    Brush.Color:= clAqua;
 // FloodFill(DreiV, DreiV, clAqua, fsBorder);
  // SetViewportOrgEx(Handle, PTemp.X, PTemp.Y, nil);
  end;
end;
Ich hatte die MoveTo, lineTo nicht gesehen beim ersten mal
Vielen Dank für eure Hilfe !

ich wollte jetzt die Fläche inerhalbt des Kreises füllen mit
FloodFill(ileft div 2, iTop div 2, clBtnFace, fsBorder);

aber irgendwie geht das nicht.... ich wollte einfach den Mittelpunkt berechnen.
ach ja die FloodFill Procedure wird ganz zum Schluss auf gerufen

edit00
ich habe den code in meiner GUI eingebaut:
Delphi-Quellcode:
procedure Kreis4Farben(cav: TCanvas; iLeft, iTop, DMesser: integer);
var
  PTemp: TPoint;
  Halb, Viertel, DreiV: integer;
begin
  Halb := DMesser div 2;
  Viertel := Halb div 2;
  DreiV := Halb + Viertel;

  with cav do
  begin
    Pen.Color:= clRed;
    Arc(iLeft, iTop, DMesser, DMesser, DMesser, Halb, Halb, 0);
    Pen.Color:= clYellow;
    Arc(iLeft, iTop, DMesser, DMesser, Halb, 0, 0, Halb);
    Pen.Color := clGreen;
    Arc(iLeft, iTop, DMesser, DMesser, 0, Halb, Halb, DMesser);
    Pen.Color := clAqua;
    Arc(iLeft, iTop, DMesser, DMesser, Halb, DMesser, DMesser, Halb);
  end;
end;

procedure TmyShape.DrawKreis;
var
  r:TRect;
begin
  r.left:=rx; r.top:=ry; r.Right:=r.left+rw; r.Bottom:=(r.Top+rh);
// Kreis4Farben(fcanvas,r.left,r.top,10);
  fcanvas.Ellipse(r);
  fcanvas.Pen.Assign(pen);
  Kreis4Farben(fcanvas,rx,ry,10);
end;
und weiter angepasst. allerdings ist der Code leider zu langsam
bzw. es passiert nicht das was im Demo Programm passiert.
Da geht es nämlich genau so .
auf der Linken Bildschirmseite werden 2 lange Blikende Llinen angezeigt

ersetzt ich Kreis4Farben durch Elepsse geht es allerdings ohne die 4 farben !
Michael Springwald
MFG
Michael Springwald,
Bitte nur Deutsche Links angeben Danke (benutzte überwiegend Lazarus)
  Mit Zitat antworten Zitat
 


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 00:54 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz