AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Multimedia Delphi Graph mit Graphics32 Darstellungsproblem
Thema durchsuchen
Ansicht
Themen-Optionen

Graph mit Graphics32 Darstellungsproblem

Ein Thema von TomyN · begonnen am 2. Jan 2019 · letzter Beitrag vom 5. Jan 2019
 
TomyN

Registriert seit: 8. Nov 2006
Ort: Bayreuth
268 Beiträge
 
Delphi 10.3 Rio
 
#3

AW: Graph mit Graphics32 Darstellungsproblem

  Alt 2. Jan 2019, 15:49
Hi,

erstmal vielen Dank für Deine Antwort.

PolyLine gibt's leider nicht in Graphics32 und Polygon ist hier nicht zielführend ..

Code:
Type TLineData = TArrayOfFloatPoint;
 
Procedure DoPolyLine(const pfad: GR32_Paths.TFlattenedPath;
                             const data: TLineData;
                             const add: boolean);
  var maxl: cardinal;
      i:   cardinal;
  begin
    if ( Assigned(pfad) and ( Length(data) > 1 ) ) then begin
      maxl:= High(data);
      if add then
        pfad.MoveTo(data[0])
      else
        pfad.LineTo(data[0]);
      for I := 1 to maxl do pfad.LineTo(data[i]);
    end;
  end;
Der Aufruf erfolgt wie folgt:

Code:
Procedure OutCan(const daten: TArrayOfFloatPoint; const can: TCanvas32;
                 const shadow: boolean; const shadowY: single;
                 const tw: integer); inline;
  var endl: integer;
  begin
    endl:= high(daten);
    if (length(daten) > 0) then begin
      //Die linie
      can.Brushes[0].Visible:= TRUE;
      can.Brushes[1].Visible:= false;
      can.Path.Clear;
      can.Path.BeginPath;
      if (endl > 0) then begin
        (can.Brushes[0] as TStrokeBrush).StrokeWidth:= tw;
        DoPolyLine(can.Path, daten, False);
      end else begin
        (can.Brushes[0] as TStrokeBrush).StrokeWidth:= tw * 0.5;
        can.Path.Arc(daten[0], 0, doublePi, 0.25 * tw);
      end;
      can.Path.EndPath;
      //Füllen
      if Shadow then begin
        can.Path.Clear;
        can.Brushes[0].Visible:= FALSE;
        can.Brushes[1].Visible:= TRUE;
        //Die Daten dazu
        can.Path.Clear;
        can.Path.BeginPath;
        can.Path.MoveTo(daten[0].x, shadowY);
        uPaintGr32.DoPolyLine(can.Path, daten, False);
        can.Path.LineTo(daten[endl].X, shadowY);
        can.Path.ClosePath;
        can.Path.EndPath;
      end; // else can.Brushes[1].Visible:= TRUE;
    end;
  end;
Thomas Neumann
Meine Projekte
www.satlive.audio
www.levelcheck.de
  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 16:41 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