Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Multimedia (https://www.delphipraxis.net/16-multimedia/)
-   -   Vector Pie mit der graphics32 (https://www.delphipraxis.net/188037-vector-pie-mit-der-graphics32.html)

Wishmaster 26. Jan 2016 06:58

Vector Pie mit der graphics32
 
Liste der Anhänge anzeigen (Anzahl: 4)
So ich versuchen einen Pie zu zeichnen mit der graphics32 Lib.
genauer gesagt möchte ich die Vector variante davon benutzen. die in der GR32_VectorUtils.pass zu finden ist

mit der standard "Canvas.Pie" funktioniert das einwandfrei, die ist mir aber zu zackig.
mit der Vector variante komme ich einfach nicht klar.

ich möchte den Start-Angle eingeben und mit der maus die position setzen




Delphi-Quellcode:
function GetAnglePosition(R : TRect; FBaseAngle, FMin, FMax, FPosition : Integer): TPoint;
var
  a: Double;
begin
  a:=(FBaseAngle - 90) + 360 * (FPosition /(FMax - FMin) - FMin);
  a:= pi * a / 180;
  with R do
  begin
    Result.X:= Round(Cos(a) * (Right - Left) / 2 + (Left + Right) / 2);
    Result.Y:= Round(Sin(a) * (Bottom - Top) / 2 + (Bottom + Top) / 2);
  end;
end;


var
   R: TRect;
   P1, P2: TPoint;


    P1:= GetAnglePosition(R, 0, 0, 360, 180);
    P2:= GetAnglePosition(R, 0, 0, 360, -180 + Position);
    Buffer.Canvas.Pen.Color:= $00606060;
    Buffer.Canvas.Brush.Color:= clred;
  if Position > 0 then
    Buffer.Canvas.Pie(R.Left + 5, R.Top + 5, R.Right-5, R.Bottom-5, P2.X,P2.Y,P1.X,P1.Y);

Jens01 26. Jan 2016 10:56

AW: Vector Pie mit der graphics32
 
Weiss nicht wo genau Dein Problem ist, aber Du mußt mit diesem Pie() auf ein TBitmap32 zeichnen und dann von TBitmap32 auf das Canvas (mit einem Handle) übertragen.

Medium 26. Jan 2016 16:18

AW: Vector Pie mit der graphics32
 
Die GR32_VectorUtils.pas befindet sich nicht in dem normalen GR32 Paket von SourceForge, und ist auch nicht in der CHM-Doku erwähnt. Im Netz finde ich sie auch auf die Schnelle nicht. Es wäre schon ganz nett, wenn du Quellen für non-Standard Erweiterungen zumindest verlinken würdest, weil im Moment hat keiner eine Chance zu gucken was die Methoden da überhaupt an Parametern erwarten. (Zumal du ja nichtmals einen Aufruf in deinem Code illustrierst.)
Wo ist überhaupt genau das Problem? "komme ich einfach nicht klar" ist keine Fehlerbeschreibung, und hilft auch keinem auch nur im Ansatz zu verstehen was du bisher gemacht hast, und was dabei falsches passiert. Es sagt nichtmals was darüber aus womit du nicht klar kommst. Einbindung? Aufrufe? Sieht falsch aus? Zeichnet nichts? Was denn? Vor allem: In wie hängen deine Bilder mit dem Problem zusammen!? Oder wolltest du die einfach mal nur zeigen weil sie hübsch sind?

Jens01 26. Jan 2016 16:30

AW: Vector Pie mit der graphics32
 
VectorUtils liegt hier mit drin. Ich glaub, es kommt aus diesem TLine32.

Wishmaster 27. Jan 2016 02:08

AW: Vector Pie mit der graphics32
 
okay, @Medium erstens möchte ich mich entschuldigen das du mich nicht verstanden hast.
ich weiß zwar nicht welche version du benutzt aber wie Jens01 schon gesagt hat liegt die GR32_VectorUtils.pas mit in dem packet.
und ich denke ich habe versucht mit den bildern zu demonstrieren was ich bis jetzt gemacht habe und gleichzeitig was ich machen möchte.

wenn du dir die bilder anschaust habe ich den pie (in Rot) erfolgreich gezeichnet und kann den winkel auch mit der Maus/Timer ändern,
alerding mit der standardfunktion. also mit Canvas.Pie


die Pie funktion aus der GR32_VectorUtils hat ganz andere parameter den die aus der Vcl.Graphics unit.
so ich dachte einer von euch kennt sich mit der funktion aus und könnte mir bei der übersetzung weiterhelfen.

bei der standardversion sind die ränder zu zackig also kein anti aliasing.

ich versuche ein ähnliche komponenten set zu schreiben wie Abakus VCL
nur die besser aussehen und open source sind!

ich komme auch gut voran, allerdings machen einige funktionen mich wahnsinnig.
alle komponenten basieren auf graphics32.

Wishmaster 27. Jan 2016 03:19

AW: Vector Pie mit der graphics32
 
Liste der Anhänge anzeigen (Anzahl: 1)
so nach langem rumtüfteln habe ich es hingekriegt.

Rollo62 27. Jan 2016 06:47

AW: Vector Pie mit der graphics32
 
Vielleicht schaust du dir auch mal Gr32_Ex an.

Da wird gezeigt das ArrayOfFloatPoint mit
Delphi-Quellcode:
gPolyBezier(xBitmap, PP, xColor, xOptions, true);
abgerundet wird.
Das könnte vielleicht für dich interessant sein:

Delphi-Quellcode:
{ draw elliptic and transformed pie }
procedure gPieET(xBitmap : tBitmap32;
                         const xCenter : tFixedPoint;
                         const xA, xB : GR32.tFixed;
                         const xStartAngle, xEndAngle : double; { values in radians }
                         const xAT : TFloatMatrix; { affine transformation matrix }
                         const xColor : tColor32;
                         const xOptions : tPolygonDrawOptions = pdoFloat);
var
  PP : TArrayOfFixedPoint;
  L : integer;
begin
  SetLength(PP, 0);
  LoadArcCurve(xCenter, xA, xB, xStartAngle, xEndAngle, PP);

  { connect with center }
  L := Length(PP);
  SetLength(PP, L + 3);
  PP[L] := PP[L-1];
  PP[L + 1] := xCenter;
  PP[L + 2 ] := xCenter;

  TransformArrayOfFixedPoint(PP, xAT);
  gPolyBezier(xBitmap, PP, xColor, xOptions, true);

  PP := nil;
end;

Rollo

Medium 28. Jan 2016 11:01

AW: Vector Pie mit der graphics32
 
Zitat:

Zitat von Jens01 (Beitrag 1328310)
VectorUtils liegt hier mit drin. Ich glaub, es kommt aus diesem TLine32.

In der normalen Seite für die Release-Versionen hier ist es nicht enthalten, und gehört somit nicht zum Basisumfang der GR32. Ob und wer da wann und wo welche Dinge hinzugefügt hat ist in dem Projekt äusserst undurchsichtig. Eine Suche bei Google nach dem Unitnamen hat mich auch nicht innerhalb von wenigen Minuten auf die von dir verlinkten Seiten geführt. Von daher finde ich meinen Einwand nach wie vor berechtigt. Aber freut mich, dass es jetzt klappt.

Memnarch 28. Jan 2016 12:05

AW: Vector Pie mit der graphics32
 
@Medium:
Wie wärs mit der Dateihistory?
http://sourceforge.net/p/graphics32/...ectorUtils.pas

EDIT: Außerdem ist das letzet Release von 2013 und die letzten Änderungen von Dezember 2015. Würde also nicht allzuviel auf die releases geben.

Medium 28. Jan 2016 19:39

AW: Vector Pie mit der graphics32
 
Und das soll jetzt jemand, der das Projekt nicht aktiv verfolgt, sondern nur ab und zu mal nutzt wissen? Wenn ich auf die Seite der GR32 gehe gibts unter Download einen Link auf das SF-Projekt. Dort geht man, wenn man einfach nur eben das letzte Release haben will, direkt auf "Files", nimmt das letzte wo irgendwas mit "stable" dran steht und die höchste Nummer hat, und will dann gerne mit der eigentlichen Arbeit weiter machen. Sorry, aber wenn seit 2013 noch aktiv daran gearbeitet wurde, dann ist das Projekt einfach schlampig geführt. Vor allem wenn solche schon nicht mehr ganz so kleinen Features für Jahre nicht im "official release" auftauchen. Ich habe besseres zu tun als mich mit der Versionshistorie aller Projekte intensiv zu befassen die ich sporadisch und spontan nutze um etwas nicht selbst machen zu müssen, und an und für sich bin ich mit meiner "halben" Releaseversion der GR32 auch sehr zufrieden. (Bevor ich zu viel Zeit ins Suchen stecke, mache ich vieles auch eben einfach selbst. Gerade auch weil ich schon etwas Erfahrung mit der oftmals ganz tollen "Dokumentation" von OS Projekten habe - wobei die GR32 hier sogar ein sehr positives Beispiel ist.) Und wenn ich mich schon nicht für mich durch solches Gewurste kämpfe...


Alle Zeitangaben in WEZ +1. Es ist jetzt 00:05 Uhr.
Seite 1 von 2  1 2      

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