AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

TPlotgrid zeichnet Strich in Polygon

Ein Thema von Stewag · begonnen am 20. Aug 2019 · letzter Beitrag vom 13. Okt 2022
Antwort Antwort
Seite 1 von 2  1 2      
Stewag

Registriert seit: 12. Jun 2008
175 Beiträge
 
Delphi 12 Athens
 
#1

TPlotgrid zeichnet Strich in Polygon

  Alt 20. Aug 2019, 18:26
Ich zeichne streng nach dieser Anleitung Sinus und Cosinus Polygone:
http://docwiki.embarcadero.com/CodeE...tGrid_(Delphi)

Daber erhalte ich aber nicht die im Link angezeigte Grafik sondern jeweils einen zusätzlichen Strich, der Anfang und Ende der Kurven verbindet, siehe screenshot.
Ist das ein Bug oder kann man den Balken irgendwie loswerden?

Gibt es zudem eine Möglichkeit, das Gitter komplett auszublenden, also nur die Kurven anzuzeigen?

Ich verwende 10.3.2 Community.
Miniaturansicht angehängter Grafiken
screenshot.jpg  
Steffen

Geändert von Stewag (20. Aug 2019 um 21:08 Uhr)
  Mit Zitat antworten Zitat
Rollo62

Registriert seit: 15. Mär 2007
4.094 Beiträge
 
Delphi 12 Athens
 
#2

AW: TPlotgrid zeichnet Strich in Polygon

  Alt 20. Aug 2019, 20:16
Zitat:
Note: If the first point and the last point of the Points array do not coincide, DrawPolygon automatically connects the first and the last point and closes the polygon.
http://docwiki.embarcadero.com/Libra...as.DrawPolygon
  Mit Zitat antworten Zitat
Stewag

Registriert seit: 12. Jun 2008
175 Beiträge
 
Delphi 12 Athens
 
#3

AW: TPlotgrid zeichnet Strich in Polygon

  Alt 20. Aug 2019, 20:42
... das hatte ich gesehen aber ich habe das Beispiel wirklich 1:1 umgesetzt. Dort gibt es aber KEINE Linie.
?
Steffen
  Mit Zitat antworten Zitat
Rollo62

Registriert seit: 15. Mär 2007
4.094 Beiträge
 
Delphi 12 Athens
 
#4

AW: TPlotgrid zeichnet Strich in Polygon

  Alt 21. Aug 2019, 08:01
Vielleicht ist das Bild falsch ?
Polygon ist für mich erstmal geschlossen, PolyLine wäre da besser.
Wenn der Canvas das Polyline nicht anbietet würde ich TPath verwenden
http://docwiki.embarcadero.com/Libra...#Code_Examples

Das setzt ich an allen möglichen Stellen ein und ist sehr flexibel.
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
11.453 Beiträge
 
Delphi 12 Athens
 
#5

AW: TPlotgrid zeichnet Strich in Polygon

  Alt 21. Aug 2019, 10:08
OT: Was bewegt den Author dieses Beispiels nur dazu, globale Variablen zu verwenden?
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
Benutzerbild von haentschman
haentschman

Registriert seit: 24. Okt 2006
Ort: Seifhennersdorf / Sachsen
5.388 Beiträge
 
Delphi 12 Athens
 
#6

AW: TPlotgrid zeichnet Strich in Polygon

  Alt 21. Aug 2019, 11:50
Zitat:
OT: Was bewegt den Author dieses Beispiels nur dazu, globale Variablen zu verwenden?
...das ist wie mit dem WITH. Manche machens, obwohl es eigentlich "abgekündigt" ist.
  Mit Zitat antworten Zitat
Stewag

Registriert seit: 12. Jun 2008
175 Beiträge
 
Delphi 12 Athens
 
#7

AW: TPlotgrid zeichnet Strich in Polygon

  Alt 21. Aug 2019, 18:04
... hat jemand vielleicht ein Sourcebeispiel für die Darstellung einer Sinuskurve mit Polyline?
Schreibe sonst nur Datenanwendungen und bin "zeichnerisch" völlig unbeleckt.

Mit der Sinuskurve soll der aktuelle Wasserstand innerhalb eine Gezeit (Tide) anschaulich gemacht werden.
Steffen
  Mit Zitat antworten Zitat
Rollo62

Registriert seit: 15. Mär 2007
4.094 Beiträge
 
Delphi 12 Athens
 
#8

AW: TPlotgrid zeichnet Strich in Polygon

  Alt 22. Aug 2019, 08:31
Das PlotGrid ist ein interessantes Thema, damit habe ich mich bislang noch nicht beschäftigt,
dankesehr für den Anstoss.

Deshalb habe ich mal schnell versucht das Emba-Sample auf PathData umzustellen, wie vorgeschlagen.
Ich habe das hier per Data als String gemacht, ist natürlich nicht optimal durch die Format-Konvertierungen, hat aber den Charme das man auch einfach mal andere SVG Kurven da mal reinwerfen könnte.
TPath kann alles mögliche malen, und das mit Kurven, Bezier, etc.
Angehängte Dateien
Dateityp: zip T289_PlotGrid.zip (11,4 KB, 15x aufgerufen)

Geändert von Rollo62 (22. Aug 2019 um 11:54 Uhr)
  Mit Zitat antworten Zitat
Stewag

Registriert seit: 12. Jun 2008
175 Beiträge
 
Delphi 12 Athens
 
#9

AW: TPlotgrid zeichnet Strich in Polygon

  Alt 22. Aug 2019, 11:30
... SUPER - danke Rollo!!!

Funktioniert exakt wie gewünscht
Steffen
  Mit Zitat antworten Zitat
Stewag

Registriert seit: 12. Jun 2008
175 Beiträge
 
Delphi 12 Athens
 
#10

AW: TPlotgrid zeichnet Strich in Polygon

  Alt 11. Okt 2022, 18:09
Leider wird der Path in D11 (in Android) wieder durch den Strich geschlossen
https://www.swiftease.de/download/Sc...011-221811.PNG

Hat jemand eine Idee, wie Rollos obiger T289_Plotgrid Code angepasst werden kann?

Rollo hatte im Sample Code (https://docwiki.embarcadero.com/Code...tGrid_(Delphi))) das Polygon durch einen Pfad ersetzt.
Das hat bis D10 funktioniert.

Hier der zentrale Code (nur Cosinus):
Code:
procedure TForm1.CalculateCos;
var
  I : Integer;
  LPt: TPointF;
  LStr: string;
begin
  FPathData.Clear;

  SetParams;
  SetLength(FPoints, Resolution);                      // Alloc space for number of points to be calculated

  // First point moveto
  LPt := PointF( Origin.x + Radian * xPixels / Pi,
                 Origin.y - cos(Radian) * yPixels );

  LStr := LStr + 'M'
               + Format('%1.2f', [LPt.X], FFormatSettings)
               + ', '
               + Format('%1.2f', [LPt.Y], FFormatSettings)
               ;

  Radian := Radian + Interval;                       // Set next point

  for I := 1 to High(FPoints) do
  begin

    LPt := PointF( Origin.x + Radian * xPixels / Pi,
                   Origin.y - cos(Radian) * yPixels );

    LStr := LStr + 'L'
                 + Format('%1.2f', [LPt.X], FFormatSettings)
                 + ', '
                 + Format('%1.2f', [LPt.Y], FFormatSettings)
                 ;


    Radian := Radian + Interval;                       // Set next point
  end;

  LStr := LStr + 'M0 0';
  LStr := LStr + 'Z';

  FPathData.Data := LStr;

end;

procedure TForm1.SetParams;
begin
  Resolution := 200;                   // Set resolution to 200 points
  Radian := -2.0 * Pi;                 // Start angle at -2Pi
  xPixels := PlotGrid.Width / 4;       // Contain graph width within a quarter of the grid width (actually half because of neg values)
  yPixels := PlotGrid.Height / 4;      // Contain graph height within a quarter of the grid height (actually half because of neg values)
  Origin := PointF(PlotGrid.Width / 2, // Calculate the center point of the plot grid
    PlotGrid.Height / 2);
  Interval := 4.0 * Pi / Resolution;   // Set interval between two points in which function values are calculated
end;



procedure TForm1.PlotGridPaint(Sender: TObject; Canvas: TCanvas;
  const ARect: TRectF);
begin
  PlotGrid.Canvas.Stroke.Thickness := 3;                 // Set stroke thickness

  CalculateCos;
  PlotGrid.Canvas.Stroke.Color := TAlphaColorRec.Blue;  // Set color for cos to blue
  PlotGrid.Canvas.DrawPath( FPathData, 1.0 ); // DrawPolygon(FPoints, 1);              // Draw cos graph
end;
Steffen

Geändert von Stewag (12. Okt 2022 um 11:16 Uhr)
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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:39 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