AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Multimedia Gr32 dicken Kreis zeichnen (Donut)
Thema durchsuchen
Ansicht
Themen-Optionen

Gr32 dicken Kreis zeichnen (Donut)

Ein Thema von Gruber_Hans_12345 · begonnen am 23. Nov 2016 · letzter Beitrag vom 24. Nov 2016
Antwort Antwort
Gruber_Hans_12345

Registriert seit: 14. Aug 2004
1.439 Beiträge
 
Delphi 2007 Professional
 
#1

Gr32 dicken Kreis zeichnen (Donut)

  Alt 23. Nov 2016, 10:10
Bin gerade dabei mit dem Gr32 zu spielen, und dabei wollte ich einen Donut zeichnen.

einen einfachen Kreis habe ich schon, indem ich mir mit Circle die Punkte berechne lasse und dann kann ich den gefüllt oder als Linie zeichnen.

Was wäre nun der klügste schritt daraus einen Donut zu machen?
Mein erster Gedanke war einen größeren Kreis und die zwei abziehen, aber da finde ich keine Funktionen dafür.
Gruss Hans

2B or not 2B, that is FF
  Mit Zitat antworten Zitat
TiGü

Registriert seit: 6. Apr 2011
Ort: Berlin
3.070 Beiträge
 
Delphi 10.4 Sydney
 
#2

AW: Gr32 dicken Kreis zeichnen (Donut)

  Alt 23. Nov 2016, 12:24
Einen großen Kreis zeichnen und einen kleinen mit der Hintergrundfarbe in die Mitte?
  Mit Zitat antworten Zitat
Gruber_Hans_12345

Registriert seit: 14. Aug 2004
1.439 Beiträge
 
Delphi 2007 Professional
 
#3

AW: Gr32 dicken Kreis zeichnen (Donut)

  Alt 23. Nov 2016, 13:06
das ganze sollte dann auf einen "unbekannten" hintergrund gezeichnet werden, also da ist dann entweder schon ein PNG Bild dahinter oder irgendwas anderes, was ich dann nicht verlieren möchte.

Ich versuche es im Moment mit der TPolygon32
indem ich ein Outline und ein GRow mache, aber das funkt leider auch nicht so wie es sollte ...
Gruss Hans

2B or not 2B, that is FF
  Mit Zitat antworten Zitat
Jens01

Registriert seit: 14. Apr 2009
673 Beiträge
 
#4

AW: Gr32 dicken Kreis zeichnen (Donut)

  Alt 23. Nov 2016, 13:52
Da gibt es mehrere Möglichkeiten:

1) In GR32_VectorUtils gibt es die Methode Circle. Ich glaube Du mußt dann die Stiftstärke bei Pen auf die entsprechende einstellen.

2) Man kann es mit den Polygonen machen, indem man so ein Donut erzeugt. Das müßte ich selber gerade genau gucken. Habe es aber irgendwann schon mal gemacht.

3) Du nimmst die veraltete Unit von Angus :
http://angusj.com/delphi/gr32_lines.php

Es könnte sein, dass sie nicht ganz bei neueren Versionen von Gr32 funktioniert. Dafür gibt es aber schon Fixes. Frag dann mal nach.
Achtung: Bin kein Informatiker sondern komme vom Bau.
  Mit Zitat antworten Zitat
Benutzerbild von bytecook
bytecook

Registriert seit: 6. Aug 2010
Ort: Dornbirn
151 Beiträge
 
Delphi 11 Alexandria
 
#5

AW: Gr32 dicken Kreis zeichnen (Donut)

  Alt 23. Nov 2016, 23:21
Bin gerade dabei mit dem Gr32 zu spielen, und dabei wollte ich einen Donut zeichnen.

einen einfachen Kreis habe ich schon, indem ich mir mit Circle die Punkte berechne lasse und dann kann ich den gefüllt oder als Linie zeichnen.

Was wäre nun der klügste schritt daraus einen Donut zu machen?
Mein erster Gedanke war einen größeren Kreis und die zwei abziehen, aber da finde ich keine Funktionen dafür.
Schau mal hier, da findest die aktuellste Version: https://github.com/graphics32/graphics32

"Donut-Ergebnis" mit GR32 http://i68.tinypic.com/f3xgt1.png

Ein Donut ist mittlerweile ziemlich simpel, zwei Ellipsen in einen TFlattenedPath rein. Dazu unbedingt GR32_Paths ansehen. Leider gibts derzeit keine Doku dazu, aber die
Demos im Master helfen schon ziemlich weiter. Wichtig ist, dass du beim Polyfillmode des Renderers "pfEvenOdd" angibst, damit der "kleinere" Teil freigestellt/transparent wird.

Eine schöne Erklärung zu den Filltypen (hat nichts mit Farbe, sondern mit Freistellung zu tun) findest du auf der ziemlich aktuellen Seite von Angus ...
http://www.angusj.com/delphi/clipper...lyFillType.htm

Und es gibt auch neueres von ihm für GR32 ...
Siehe http://graphics32.org/news/newsgroup...ticle_id=13199



Hth,

Peter
Peter
Was mache ich, wenn ein Bär meine Frau angreift?
Nichts. Er hat sie angegriffen, soll er doch selber sehen, wie er sich verteidigt.

Geändert von bytecook (23. Nov 2016 um 23:32 Uhr)
  Mit Zitat antworten Zitat
Gruber_Hans_12345

Registriert seit: 14. Aug 2004
1.439 Beiträge
 
Delphi 2007 Professional
 
#6

AW: Gr32 dicken Kreis zeichnen (Donut)

  Alt 24. Nov 2016, 09:17
oh danke

Habe es mittlerweile auch schon zusammengebracht.

Delphi-Quellcode:
var
    pPoints : TArrayOfArrayOfFloatPoint;
begin
        setlength(pPoints, 2);
        pPoints[0] := Circle(mPoint.X, mPoint.Y, radius);
        pPoints[1] := Grow(pPoints[0], width);
        GR32_Polygons.PolyPolygonFS(Bitmap, pPoints, Color);
    end;
falls es noch wer braucht.
Gruss Hans

2B or not 2B, that is FF
  Mit Zitat antworten Zitat
Jens01

Registriert seit: 14. Apr 2009
673 Beiträge
 
#7

AW: Gr32 dicken Kreis zeichnen (Donut)

  Alt 24. Nov 2016, 13:15
Zitat:
Und es gibt auch neueres von ihm für GR32 ...
Siehe http://graphics32.org/news/newsgroup...ticle_id=13199
Interessanter Link. Danke.

@Gruber_Hans_12345
Man kann solche Sachen in GR32 oft auf mehreren Wegen lösen.
Achtung: Bin kein Informatiker sondern komme vom Bau.
  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 04:30 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